Heim  >  Artikel  >  Datenbank  >  Ausführliche Erklärung zur Verwendung des MySQL-Autorisierungsbefehls grant

Ausführliche Erklärung zur Verwendung des MySQL-Autorisierungsbefehls grant

怪我咯
怪我咯Original
2017-06-23 13:43:563335Durchsuche

Das Beispiel in diesem Artikel läuft auf MySQL 5.0 und höher.

Das einfache Format des MySQL-Befehls „Benutzerberechtigungen gewähren“ kann wie folgt zusammengefasst werden:

GewährenBerechtigungenfürDatenbankobjekt an Benutzer

1. Normale Datenbenutzer gewähren, abfragen, einfügen, aktualisieren, alles löschen Tabellen in der Datenbank Datenrechte.

grant select on testdb.* to common_user@'%'
grant insert on testdb.* to common_user@'%'
grant Update on testdb.* to common_user@'%'
gewähren löschen auf testdb.* to common_user@'%'

Oder verwenden Sie stattdessen einen MySQL-Befehl:

grant select, insert, update , löschen on testdb.* to common_user@'%'

2. Datenbankentwickler gewähren, Tabellen, Indizes, Ansichten, gespeicherte Prozeduren und Funktionen erstellen. . . und andere Berechtigungen.

Erteilen Sie die Berechtigung zum Erstellen, Ändern und Löschen von MySQL-Datentabellenstrukturen.

gewähren erstellen auf testdb.* an Developer@'192.168.0.%';
grant alter on testdb.* an Developer@'192.168.0.%';
Grant Drop on testdb.* to Developer@'192.168.0.%';

Grant betreibt MySQL-Fremdschlüsselberechtigungen.

gewähren Referenzen auf testdb.* an Developer@'192.168,0.%';

Erteilen Sie die Berechtigung zum Betrieb temporärer MySQL-Tabellen.

gewähren erstellen temporäre Tabellen auf testdb.* anentwickler@'192.168.0.%';

Erteilen Sie die Berechtigung zum Betreiben von MySQL-Indizes.

gewähren index auf testdb.* an Developer@'192.168,0.%';

Erteilen Sie die Berechtigung zum Betreiben von MySQL-Ansichten und zum Anzeigen des Quellcodes.

gewähren erstellen Ansicht auf testdb.* zu Developer@'192.168.0.%';
gewährenshow view on testdb.* an Developer@'192.168.0.%';

Erteilen Sie die Berechtigung, gespeicherte MySQL-Prozeduren und -Funktionen auszuführen.

grant create routine on testdb.* to Developer@'192.168.0.%'; --kann jetzt den Verfahrensstatus anzeigen
gewähren ändern Routine auftestdb.* bisentwickler@'192.168.0.%'; 🎜>--Jetzt können Sie eine Prozedur
grant execute to Developer@' abgeben 192.168,0.%';
3. Gewähren Sie die normale DBA-Berechtigung zum Verwalten einer MySQL-Datenbank.
gewähren

alle
Berechtigungen auf testdb an dba@ 'localhost'Dabei kann das Schlüsselwort „Privilegien“ weggelassen werden. 4. Erteilen Sie dem leitenden DBA die Berechtigung, alle Datenbanken in MySQL zu verwalten.

Gewährung

alle
auf *.* bis dba@'localhost'

5. MySQL-Erteilungsberechtigungen können auf mehreren Ebenen angewendet werden.

1. grant funktioniert auf dem gesamten MySQL-Server:

grant select on * .* to dba@localhost; -- dba kann Tabellen in allen Datenbanken in MySQL abfragen.
gewähren alle am *.* an dba @localhost; -- dba kann alle Datenbanken in MySQL verwalten

2. Zuschuss funktioniert auf einer einzigen Datenbank:

grant select on testdb.* to dba@localhost; -- dba kann die Tabellen in testdb abfragen.

3. Grant arbeitet an einer einzelnen Datentabelle:

grant select, insert, update , löschen on testdb.orders to dba@localhost;

Hier genehmigen Sie mehrere Fotos für eins Benutzertabelle können Sie die obige Anweisung mehrmals ausführen. Zum Beispiel:

grant select(user_id,username) on smp.users an mo_user@'%' identifiziert durch '123345';
grant select on smp.mo_sms to mo_user@'%' identifiziert von '123345';

4. grant wirkt auf die Spalten in der Tabelle:

grant select(id, se, rank) on testdb.apache_log to dba@localhost;

5. Grant arbeitet an gespeicherten Prozeduren und Funktionen:

grant execute on Prozedur testdb.pr_add to 'dba'@'localhost'
grant execute on function testdb.fn_add to 'dba '@'localhost'

6. MySQL-Benutzerberechtigungen anzeigen

Den aktuellen Benutzer (selbst) anzeigen Berechtigungen:

Zuschüsse anzeigen;

Berechtigungen anderer MySQL-Benutzer anzeigen:

Zuschüsse anzeigen for dba@localhost;

7. Widerrufen Sie die erteilten Berechtigungen die MySQL-Benutzerberechtigungen.

revoke hat eine ähnliche Syntax wie grant, ersetzen Sie einfach das Schlüsselwort „to“ durch „from“:

grant all on *.* to dba@localhost;
revoke alle auf *.* von dba@localhost;

8. Hinweise zum Erteilen und Entziehen von Benutzerberechtigungen durch MySQL

1. Nach dem Erteilen und Widerrufen der Benutzerberechtigungen können die Berechtigungen nur wirksam werden, wenn der Benutzer erneut eine Verbindung zur MySQL-Datenbank herstellt.

2. Wenn Sie möchten, dass autorisierte Benutzer diese Berechtigungen anderen Benutzern erteilen, müssen Sie die Option „Option gewähren“

gewähren auswählen 🎜> on testdb.* to dba@localhost with grant Option;
Diese Funktion wird im Allgemeinen nicht verwendet. In der Praxis werden Datenbankberechtigungen am besten einheitlich vom DBA verwaltet.

Das obige ist der detaillierte Inhalt vonAusführliche Erklärung zur Verwendung des MySQL-Autorisierungsbefehls grant. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn