Das Beispiel in diesem Artikel läuft auf MySQL 5.0 und höher.
Das einfache Format des MySQL-Befehls zum Erteilen von Benutzerberechtigungen kann wie folgt zusammengefasst werden:
grant 权限 on 数据库对象 to 用户
Verwandte Lernempfehlungen: MySQL-Video-Tutorial
1. Gewähren Sie normalen Datenbenutzern das Recht, alle Tabellendaten in der Datenbank abzufragen, einzufügen, zu aktualisieren und zu löschen.
grant select on testdb.* to common_user@'%' grant insert on testdb.* to common_user@'%' grant update on testdb.* to common_user@'%' grant delete on testdb.* to common_user@'%'
Oder verwenden Sie stattdessen einen MySQL-Befehl:
grant select, insert, update, delete on testdb.* to common_user@'%'
2. Erteilen Sie dem Datenbankentwickler die Erlaubnis, Tabellen, Indizes, Ansichten, gespeicherte Prozeduren und Funktionen zu erstellen. . . und andere Berechtigungen.
Erteilen Sie die Berechtigung zum Erstellen, Ändern und Löschen von MySQL-Datentabellenstrukturen.
grant create on testdb.* to developer@'192.168.0.%'; grant alter on testdb.* to developer@'192.168.0.%'; grant drop on testdb.* to developer@'192.168.0.%';
grant betreibt MySQL-Fremdschlüsselberechtigungen.
grant references on testdb.* to developer@'192.168.0.%';
Erteilen Sie die Berechtigung zum Betreiben temporärer MySQL-Tabellen.
grant create temporary tables on testdb.* to developer@'192.168.0.%';
Erteilen Sie die Berechtigung zum Betreiben von MySQL-Indizes.
grant index on testdb.* to developer@'192.168.0.%';
Erteilen Sie die Berechtigung zum Betreiben von MySQL-Ansichten und zum Anzeigen des Quellcodes.
grant create view on testdb.* to developer@'192.168.0.%'; grant show view on testdb.* to developer@'192.168.0.%';
Gewähren Sie die Berechtigung zum Ausführen gespeicherter MySQL-Prozeduren und -Funktionen.
grant create routine on testdb.* to developer@'192.168.0.%'; -- now, can show procedure status grant alter routine on testdb.* to developer@'192.168.0.%'; -- now, you can drop a procedure grant execute on testdb.* to developer@'192.168.0.%';
3. Erteilen Sie einem normalen DBA die Berechtigung, eine MySQL-Datenbank zu verwalten.
grant all privileges on testdb to dba@'localhost'
Dabei kann das Schlüsselwort „Privilegien“ weggelassen werden.
4. Erteilen Sie dem leitenden DBA die Berechtigung, alle Datenbanken in MySQL zu verwalten.
grant all on *.* to dba@'localhost'
5. MySQL-Erteilungsberechtigungen können auf mehreren Ebenen angewendet werden.
1. Grant arbeitet auf dem gesamten MySQL-Server:
grant select on *.* to dba@localhost; -- dba 可以查询 MySQL 中所有数据库中的表。 grant all on *.* to dba@localhost; -- dba 可以管理 MySQL 中的所有数据库
2. Grant arbeitet auf einer einzelnen Datenbank:
grant select on testdb.* to dba@localhost; -- dba 可以查询 testdb 中的表。
3 Tabelle oben:
grant select, insert, update, delete on testdb.orders to dba@localhost;
Hier kann die obige Anweisung bei der Autorisierung mehrerer Tabellen für einen Benutzer mehrmals ausgeführt werden. Zum Beispiel:
grant select(user_id,username) on smp.users to mo_user@'%' identified by '123345'; grant select on smp.mo_sms to mo_user@'%' identified by '123345';
4. Grant arbeitet an Spalten in der Tabelle:
grant select(id, se, rank) on testdb.apache_log to dba@localhost;
5. Grant arbeitet an gespeicherten Prozeduren und Funktionen:
6 MySQL-Benutzerberechtigungen
Aktuelle Benutzerberechtigungen (selbst) anzeigen:grant execute on procedure testdb.pr_add to 'dba'@'localhost' grant execute on function testdb.fn_add to 'dba'@'localhost'
show grants;
7. Widerruf wurde gewährt Berechtigungen für MySQL-Benutzerberechtigungen.
Die Syntax von revoke ähnelt der von grant. Ersetzen Sie einfach das Schlüsselwort „to“ durch „from“:show grants for dba@localhost;
8. MySQL gewähren, Benutzerberechtigungen widerrufen
1. Nach dem Erteilen und Widerrufen von Benutzerberechtigungen werden die Berechtigungen nur wirksam, wenn der Benutzer erneut eine Verbindung zur MySQL-Datenbank herstellt. 2. Wenn Sie möchten, dass autorisierte Benutzer diese Berechtigungen anderen Benutzern erteilen, benötigen Sie die Option „Option gewähren“grant all on *.* to dba@localhost; revoke all on *.* from dba@localhost;
Das obige ist der detaillierte Inhalt vonSo verwenden Sie den Grant-Befehl in MySQL. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!