Die GRANT-Anweisung kann verwendet werden, um Benutzern in MySQL Berechtigungen hinzuzufügen. Die Syntax lautet „GRANT-Berechtigungstyp ON Berechtigungsstufenwert TO Benutzer [IDENTIFIED BY ‚Passwort‘] [WITH-Klausel];“;“; das Benutzerkonto und das Format ist „‘Benutzername‘@‘Hostname‘“.
Die Betriebsumgebung dieses Tutorials: Windows7-System, MySQL8-Version, Dell G3-Computer.
In MySQL können Sie die GRANT-Anweisung verwenden, um Benutzer zu autorisieren und ihre Berechtigungen zu erhöhen.
Das Syntaxformat ist wie folgt:
GRANT priv_type [(column_list)] ON database.table TO user [IDENTIFIED BY 'password'] [WITH with_option [with_option]...]
wobei:
priv_type-Parameter den Berechtigungstyp angibt;
columns_list-Parameter gibt an, für welche Spalten die Berechtigung gilt, bedeutet dies, dass sie gilt die gesamte Tabelle;
database.table wird verwendet, um die Berechtigungsstufe anzugeben;
user-Parameter stellt das Benutzerkonto dar, das aus Benutzername und Hostname besteht, und das Format ist „‘username‘@ 'hostname'";
IDENTIFIED BY-Parameter wird verwendet, um Der Benutzer legt ein Passwort fest; der
password-Parameter ist das neue Passwort des Benutzers.
Die Berechtigungen, die in MySQL gewährt werden können, sind wie folgt:
Spaltenberechtigungen beziehen sich auf eine bestimmte Spalte in der Tabelle. Sie können beispielsweise die UPDATE-Anweisung verwenden, um Berechtigungen für den Wert der Namensspalte in der Tabelle „Studenten“ zu aktualisieren.
Tabellenberechtigungen beziehen sich auf alle Daten in einer bestimmten Tabelle. Beispielsweise können Sie mit der SELECT-Anweisung die Berechtigungen für alle Daten in der Tabelle „students“ abfragen.
Datenbankberechtigungen beziehen sich auf alle Tabellen in einer bestimmten Datenbank. Sie können beispielsweise neue Tabellen in der bestehenden Datenbank mytest erstellen.
Benutzerberechtigungen beziehen sich auf alle Datenbanken in MySQL. Sie können beispielsweise eine vorhandene Datenbank löschen oder eine neue Datenbank erstellen.
Entsprechend haben die Werte, die zur Angabe von Berechtigungsstufen in der GRANT-Anweisung verwendet werden können, die folgenden Formate:
*: repräsentiert alle Tabellen in der aktuellen Datenbank.
*.*: Stellt alle Tabellen in allen Datenbanken dar.
db_name.*: Gibt alle Tabellen in einer Datenbank an, db_name gibt den Datenbanknamen an.
db_name.tbl_name: Stellt eine Tabelle oder Ansicht in einer Datenbank dar, db_name gibt den Datenbanknamen an, tbl_name gibt den Tabellennamen oder Ansichtsnamen an.
db_name.routine_name: Stellt eine gespeicherte Prozedur oder Funktion in einer Datenbank dar, routine_name gibt den Namen oder Funktionsnamen der gespeicherten Prozedur an.
TO-Klausel: Wenn die Berechtigung einem nicht vorhandenen Benutzer erteilt wird, führt MySQL automatisch eine CREATE USER-Anweisung aus, um den Benutzer zu erstellen, für den Benutzer muss jedoch ein Kennwort festgelegt werden.
In MySQL können nur Benutzer mit GRANT-Berechtigungen GRANT-Anweisungen ausführen.
Beispiel:
Verwenden Sie die GRANT-Anweisung, um einen neuen Benutzer testUser mit dem Passwort testPwd zu erstellen. Der Benutzer testUser verfügt über Abfrage- und Einfügeberechtigungen für alle Daten und erhält GRANT-Berechtigungen.
mysql> GRANT SELECT,INSERT ON *.* -> TO 'testUser'@'localhost' -> IDENTIFIED BY 'testPwd' -> WITH GRANT OPTION; Query OK, 0 rows affected, 1 warning (0.05 sec)
Verwenden Sie die SHOW GRANTS-Anweisung, um die Berechtigungen des Benutzers testUser abzufragen, wie unten gezeigt.
Erweiterte Kenntnisse: Beschreibung des Berechtigungstyps
1) Bei der Erteilung von Datenbankberechtigungen kann
Berechtigungsname | entspricht dem Feld in der Benutzertabelle | Beschreibung |
---|---|---|
SELECT | Select_priv | bedeutet, dem Benutzer die Berechtigung zu erteilen, mit der SELECT-Anweisung auf alle Tabellen und Ansichten in einer bestimmten Datenbank zuzugreifen. |
INSERT | Insert_priv | bedeutet, dem Benutzer die Berechtigung zu erteilen, mithilfe der INSERT-Anweisung Datenzeilen zu allen Tabellen in einer bestimmten Datenbank hinzuzufügen. |
DELETE | Delete_priv | bedeutet, dem Benutzer die Berechtigung zu erteilen, Datenzeilen aus allen Tabellen in einer bestimmten Datenbank mithilfe der DELETE-Anweisung zu löschen. |
UPDATE | Update_priv | bedeutet, dem Benutzer die Berechtigung zu erteilen, die Werte aller Datentabellen in einer bestimmten Datenbank mithilfe der UPDATE-Anweisung zu aktualisieren. |
REFERENCES | References_priv | bedeutet, dem Benutzer die Berechtigung zu erteilen, Fremdschlüssel zu erstellen, die auf Tabellen in einer bestimmten Datenbank verweisen. |
CREATE | Create_priv | stellt die Berechtigung dar, die ein autorisierter Benutzer verwenden kann, um mithilfe der CREATE TABLE-Anweisung eine neue Tabelle in einer bestimmten Datenbank zu erstellen. |
ALTER | Alter_priv | bedeutet, dem Benutzer die Berechtigung zu erteilen, alle Datentabellen in einer bestimmten Datenbank mithilfe der ALTER TABLE-Anweisung zu ändern. |
VIEW VIEW | Show_view_priv | bedeutet, dem Benutzer die Berechtigung zu erteilen, die Ansichtsdefinitionen vorhandener Ansichten in einer bestimmten Datenbank anzuzeigen. |
ROUTINE ERSTELLEN | Create_routine_priv | bedeutet, dem Benutzer die Berechtigung zu erteilen, gespeicherte Prozeduren und gespeicherte Funktionen für eine bestimmte Datenbank zu erstellen. |
ALTER ROUTINE | Alter_routine_priv | bedeutet, dem Benutzer die Berechtigung zu erteilen, vorhandene gespeicherte Prozeduren und gespeicherte Funktionen in der Datenbank zu aktualisieren und zu löschen. |
INDEX | Index_priv | bedeutet, dem Benutzer die Berechtigung zu erteilen, Indizes für alle Datentabellen in einer bestimmten Datenbank zu definieren und zu löschen. |
DROP | Drop_priv | bedeutet, dem Benutzer die Berechtigung zu erteilen, alle Tabellen und Ansichten in einer bestimmten Datenbank zu löschen. |
Temporäre Tabellen erstellen | Create_tmp_table_priv | bedeutet, dem Benutzer die Berechtigung zu erteilen, temporäre Tabellen in einer bestimmten Datenbank zu erstellen. |
ANSICHT ERSTELLEN | Create_view_priv | bedeutet, dem Benutzer die Berechtigung zu erteilen, neue Ansichten in einer bestimmten Datenbank zu erstellen. |
EXECUTE ROUTINE | Execute_priv | bedeutet, dem Benutzer die Berechtigung zu erteilen, gespeicherte Prozeduren und gespeicherte Funktionen einer bestimmten Datenbank aufzurufen. |
LOCK TABLES | Lock_tables_priv | bedeutet, dem Benutzer die Berechtigung zu erteilen, vorhandene Datentabellen einer bestimmten Datenbank zu sperren. |
ALL oder ALL PRIVILEGES oder SUPER | Super_priv | bedeutet alle oben genannten Berechtigungen/Superberechtigungen |
2) Bei der Erteilung von Tabellenberechtigungen kann
Berechtigungsname | entspricht dem Feld in der Benutzertabelle | Beschreibung |
---|---|---|
SELECT | Select_priv | Gewährt dem Benutzer die Berechtigung, mit der SELECT-Anweisung auf eine bestimmte Tabelle zuzugreifen |
INSERT | Insert_priv | Gewähren Sie Benutzern Zugriff auf die INSERT-Anweisung, um Datenzeilen zu einer bestimmten Tabelle hinzuzufügen. |
DELETE | Delete_priv | Gewährt dem Benutzer die Berechtigung, Datenzeilen aus einer bestimmten Tabelle mithilfe der DELETE-Anweisung zu löschen | Drop_priv
UPDATE | Update_priv | |
3) Bei der Erteilung von Spaltenberechtigungen kann | ||
Bei der Erteilung von Benutzerberechtigungen kann |
BENUTZER ERSTELLEN: Gibt an, dass der gewährte Benutzer erstellen kann und löschen Sie die Berechtigungen neuer Benutzer. | |
SHOW DATABASES: Zeigt an, dass dem Benutzer die Berechtigung erteilt wurde, die SHOW DATABASES-Anweisung zum Anzeigen der Definitionen aller vorhandenen Datenbanken zu verwenden. | 【Verwandte Empfehlungen: | MySQL-Video-Tutorial|
Das obige ist der detaillierte Inhalt vonSo erhöhen Sie die Berechtigungen in MySQL. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!