Der Artikel beschreibt die MySQL®-Datenbankberechtigungen. Außerdem wird beschrieben, wie Sie einen neuen Benutzer erstellen und Berechtigungen erteilen oder entziehen.
Verwenden von MySQL-Befehlen
Im Folgenden finden Sie hilfreiche Vorschläge für MySQL-Befehle.
Großschreibung
Sie müssen MySQL-Befehle nicht in Großbuchstaben eingeben. Die beiden folgenden Befehle funktionieren gleich gut:
CREATE USER ‘username’@’localhost’ IDENTIFIED BY ‘password’;
create user ‘username’@’localhost’ identified by ‘password’;
Die Verwendung von Großbuchstaben hilft Ihnen jedoch dabei, die Befehlssyntax von den Daten oder variablen Elementen des Befehls zu trennen.
localhost-Parameter
Außerdem können Sie den localhost
ändern -Element, das es dem Benutzer ermöglicht, von dem Computer, auf dem Sie sich gerade befinden, auf die Datenbank zuzugreifen. Wenn Sie dem Benutzer erlauben möchten, von überall auf die Datenbank zuzugreifen, verwenden Sie einen %
Symbol statt localhost
. Wenn Sie möchten, dass sich der Benutzer von einer bestimmten IP-Adresse aus bei der Datenbank anmeldet, geben Sie stattdessen diese IP-Adresse ein. Zum Beispiel username’@’22.111.000.34
.
Daher können Sie einen Benutzer mit einem der folgenden Befehle erstellen:
CREATE USER 'username'@'localhost' IDENTIFIED BY 'password';CREATE USER 'username'@'%' IDENTIFIED BY 'password';CREATE USER 'username'@'22.111.000.34' IDENTIFIED BY 'password';
Hinweis: Wenn Sie möchten, dass der Benutzer von zwei bestimmten Standorten aus auf die Datenbank zugreifen kann, und nur von diesen Standorten aus, sollten Sie den Benutzer zweimal erstellen. Angenommen, Sie möchten, dass sich Ihr Benutzer von dem Computer, auf dem Sie sich gerade befinden, sowie von einer bestimmten IP-Adresse aus bei der Datenbank anmelden kann. Erstellen Sie zuerst den Benutzer, indem Sie den localhost
verwenden Ort im Befehl. Erstellen Sie dann den Benutzer erneut, indem Sie die spezifische IP-Adresse verwenden.
Berechtigungen
Zu den allgemeinen Berechtigungen gehören die folgenden:
-
ALLE PRIVILEGIEN :Gewährt dem Benutzer vollen Zugriff auf eine bestimmte Datenbank oder ermöglicht globalen Zugriff auf das gesamte System, wenn Sie keine Datenbank angeben. Diese Berechtigung umfasst alle folgenden Berechtigungen außer GRANT .
-
ERSTELLEN :Ermöglicht dem Benutzer, neue Tabellen oder Datenbanken zu erstellen.
-
FALLEN :Ermöglicht dem Benutzer, Tabellen oder Datenbanken zu löschen.
-
LÖSCHEN :Ermöglicht dem Benutzer, Zeilen aus Tabellen zu löschen.
-
EINFÜGEN :Ermöglicht dem Benutzer Zeilen in Tabellen einzufügen.
-
AUSWÄHLEN :Gewährt dem Benutzer Leserechte für die angegebenen Datenbanken.
-
AKTUALISIEREN :Ermöglicht dem Benutzer, Tabellenzeilen zu aktualisieren.
-
TABELLEN SPERREN :Ermöglicht dem Benutzer, Tabellen zu sperren.
-
DATENBANKEN ANZEIGEN :Ermöglicht dem Benutzer, alle Datenbanken aufzulisten.
-
ERTEILUNGSOPTION :Ermöglicht dem Benutzer, die Privilegien anderer Benutzer zu erteilen oder zu entfernen. Sie müssen diese Berechtigung explizit erteilen.
Anmelden
Melden Sie sich mit dem folgenden Befehl als Root-Benutzer bei MySQL an:
mysql -u root -p
Das System fordert Sie zur Eingabe des Root-Passworts für MySQL auf, das sich von Ihrem Root-Passwort für den Server selbst unterscheidet.
Hinweis: Wenn Sie sudo-Berechtigungen auf dem Server haben, finden Sie das MySQL-Root-Passwort wahrscheinlich in ~/.my.cnf Datei als Root-Benutzer.
Neuen Benutzer erstellen
Nachdem Sie sich als root bei MySQL angemeldet haben, können Sie Ihren Benutzer erstellen. Wählen Sie einen Benutzernamen, der Ihnen gefällt. Geben Sie den folgenden Befehl ein und ersetzen Sie dabei username
und password
mit dem von Ihnen gewählten Benutzernamen und Passwort:
CREATE USER ‘username’@’localhost’ IDENTIFIED BY ‘password’;
Bei Erfolg zeigt das System Abfrage OK an .
Berechtigung erteilen
Verwenden Sie das folgende Format, um Benutzerberechtigungen in MySQL zu erteilen:
GRANT permission1, permission2, permission3 ON databasename.tablename TO ‘newuser’@’localhost’;
Wenn Sie dem Benutzer nur Zugriff auf alle Tabellen einer Datenbank gewähren möchten, verwenden Sie databasename.*
statt databasename.tablename
. Wenn Sie möchten, dass der Benutzer bestimmte Berechtigungen für alle Tabellen aller Datenbanken hat, verwenden Sie auf ähnliche Weise *.*
.
Beispiele für die Gewährung von Privilegien:
GRANT ALL PRIVILEGES ON databasename.* TO ‘newuser’@’%’;
GRANT ALL PRIVILEGES, GRANT OPTION ON *.* TO ‘newuser’@’22.111.000.34’;
GRANT SELECT, SHOW DATABASES, LOCK TABLES ON databasename.* TO ‘newuser’@’localhost’;
Berechtigungen widerrufen
Wenn Sie die Berechtigungen eines Benutzers widerrufen müssen, verwenden Sie das folgende Format:
REMOVE permission1, permission2, permission3 ON databasename.* FROM ‘newuser’@’localhost’;
Berechtigungen prüfen
Verwenden Sie den folgenden Befehl, um zu überprüfen, welche Berechtigungen ein Benutzer hat:
SHOW GRANTS newuser;
Berechtigungen anwenden
Nachdem Sie einen Benutzer erstellt, Berechtigungen erteilt oder Berechtigungen widerrufen haben, führen Sie den folgenden Befehl aus:
FLUSH PRIVILEGES;
Dieser Befehl lädt die Tabellen mit den neuen Benutzern und Berechtigungen neu. Betrachten Sie es als Speichern Ihrer Änderungen.
Abmelden
Nachdem Sie alle Änderungen vorgenommen haben, verwenden Sie den folgenden Befehl, um MySQL sicher zu beenden:
EXIT;