Sehen wir uns an, wie man einem Benutzer der MySQL-Datenbank Berechtigungen (sogenannte Privilegien) erteilt
Standardmäßig beim Erstellen eines neuen MySQL-Benutzers mit der Syntax
CREATE USER '<username>'@'localhost' IDENTIFIED BY '<password>';
Der Benutzer kann nicht viel tun. Wir können sagen, dass es eigentlich nichts kann.
Es kann keine Daten aus einer vorhandenen Datenbank lesen, geschweige denn die Daten ändern. Und es kann nicht einmal eine neue Datenbank erstellen.
Damit ein Benutzer irgendetwas tun kann, müssen Sie ihm Berechtigungen gewähren dazu.
Sie können dies mit dem GRANT
tun Befehl.
Wir können GRANT <permission>
verwenden , indem Sie die folgenden Berechtigungsschlüsselwörter verwenden:
CREATE
DROP
DELETE
INSERT
SELECT
UPDATE
ALL PRIVILEGES
Erteilen Sie einem Benutzer das Recht, neue Datenbanken zu erstellen
GRANT CREATE ON *.* TO '<username>'@'localhost';
Geben Sie einem Benutzer Privilegien, um neue Tabellen in einer bestimmten Datenbank zu erstellen
GRANT CREATE ON <database>.* TO '<username>'@'localhost';
Geben Sie einem Benutzer das Recht, eine bestimmte Datenbank zu lesen (abzufragen)
GRANT SELECT ON <database>.* TO '<username>'@'localhost';
Geben Sie das Recht, eine bestimmte Datenbanktabelle zu lesen an einen Benutzer
GRANT SELECT ON <database>.<table> TO '<username>'@'localhost';
Geben Sie das Recht, Zeilen in einer bestimmten Datenbank einzufügen, zu aktualisieren und zu löschen ein Benutzer
GRANT INSERT, UPDATE, DELETE ON <database>.* TO '<username>'@'localhost';
Erteilen Sie einem Benutzer das Recht, Tabellen in einer bestimmten Datenbank zu löschen
GRANT DROP ON <database>.* TO '<username>'@'localhost';
Erteilen Sie einem Benutzer das Recht, Datenbanken zu löschen
GRANT DROP ON *.* TO '<username>'@'localhost';
Geben Sie einem Benutzer alle Berechtigungen für eine bestimmte Datenbank
GRANT ALL PRIVILEGES ON <database>.* TO '<username>'@'localhost';
Gib einem Benutzer alle Privilegien
GRANT ALL PRIVILEGES ON *.* TO '<username>'@'localhost';
Eine Berechtigung widerrufen
Beispiel zum Widerrufen des DROP
Berechtigung für <database>
:
REVOKE DROP ON <database>.* TO '<username>'@'localhost';
Führen Sie zum Widerrufen aller Berechtigungen Folgendes aus:
REVOKE ALL PRIVILEGES ON *.* TO '<username>'@'localhost';
Sie können die Berechtigungen eines einzelnen Benutzers anzeigen, indem Sie Folgendes ausführen:
SHOW GRANTS FOR '<username>'@'localhost';