Heim  >  Artikel  >  Datenbank  >  So verwenden Sie den Grant-Befehl in MySQL

So verwenden Sie den Grant-Befehl in MySQL

coldplay.xixi
coldplay.xixinach vorne
2020-07-11 17:32:392989Durchsuche

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'

Andere MySQL-Benutzerberechtigungen anzeigen:

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;

Diese Funktion wird im Allgemeinen nicht verwendet. In der Praxis werden Datenbankberechtigungen am besten einheitlich vom DBA verwaltet.

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!

Stellungnahme:
Dieser Artikel ist reproduziert unter:jb51.net. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen