Um alle Privilegien in der Datenbank mydb
zu gewährenusername
GRANT ALL PRIVILEGES ON mydb.* TO username;
Um Privilegien auf einem Tisch mydb.mytable
zu gewährenusername
GRANT ALL PRIVILEGES ON mydb.mytable TO username;
Ich schlage vor, dass Sie den Benutzer zuerst löschen, um alle serverweiten Berechtigungen zu löschen.
DROP USER username;
CREATE USER username;
GRANT ALL PRIVILEGES ON mydb.* TO username;
Warum den Benutzer zuerst fallen lassen? Wenn Sie zum ersten Mal einen Benutzer namens " username
Anmelden" erstellen , hat der Benutzername keine Berechtigungen. Lauf einfach, um es SHOW GRANTS;
zu sehen. Es sollte so etwas sagen GRANT USAGE ON *.* TO username
. In diesem Moment username
kann sich nur anmelden. Das ist Ihre Chance, Privilegien zu schaffen.
Wenn du läufst
GRANT ALL PRIVILEGES ON *.* TO username;
Der Benutzername verfügt über globale Datenbankberechtigungen (alle Datenbanken).
Wenn du läufst
GRANT ALL PRIVILEGES ON mydb.* TO username;
Der Benutzername verfügt nur über datenbankweite Berechtigungen für die mydb
Datenbank.
Wenn du läufst
GRANT ALL PRIVILEGES ON mydb.mytable TO username;
Der Benutzername hat nur Tabellenberechtigungen für die Datei mydb.mytable.
Sie können sie nicht mischen. Wenn Sie dies tun, verlieren Sie versehentlich username
Berechtigungen, username
die Sie nicht haben sollten.
Wenn Sie sehen möchten, welche Berechtigungen auf den drei Ebenen vorhanden sind, führen Sie die folgenden Abfragen aus
SELECT table_name,column_name
FROM information_schema.columns
WHERE table_schema='mysql'
AND table_name IN ('user','db','tables_priv')
AND column_name LIKE '%\_priv'
ORDER BY table_name,column_name;
Hier sind Privilegien für MySQL 5.5
mysql> SELECT table_name,column_name
-> FROM information_schema.columns
-> WHERE table_schema='mysql'
-> AND table_name IN ('user','db','tables_priv')
-> AND column_name LIKE '%\_priv'
-> ORDER BY table_name,column_name;
+-------------+------------------------+
| table_name | column_name |
+-------------+------------------------+
| db | Alter_priv |
| db | Alter_routine_priv |
| db | Create_priv |
| db | Create_routine_priv |
| db | Create_tmp_table_priv |
| db | Create_view_priv |
| db | Delete_priv |
| db | Drop_priv |
| db | Event_priv |
| db | Execute_priv |
| db | Grant_priv |
| db | Index_priv |
| db | Insert_priv |
| db | Lock_tables_priv |
| db | References_priv |
| db | Select_priv |
| db | Show_view_priv |
| db | Trigger_priv |
| db | Update_priv |
| tables_priv | Column_priv |
| tables_priv | Table_priv |
| user | Alter_priv |
| user | Alter_routine_priv |
| user | Create_priv |
| user | Create_routine_priv |
| user | Create_tablespace_priv |
| user | Create_tmp_table_priv |
| user | Create_user_priv |
| user | Create_view_priv |
| user | Delete_priv |
| user | Drop_priv |
| user | Event_priv |
| user | Execute_priv |
| user | File_priv |
| user | Grant_priv |
| user | Index_priv |
| user | Insert_priv |
| user | Lock_tables_priv |
| user | Process_priv |
| user | References_priv |
| user | Reload_priv |
| user | Repl_client_priv |
| user | Repl_slave_priv |
| user | Select_priv |
| user | Show_db_priv |
| user | Show_view_priv |
| user | Shutdown_priv |
| user | Super_priv |
| user | Trigger_priv |
| user | Update_priv |
+-------------+------------------------+
50 rows in set (0.01 sec)
mysql>
Führen Sie die Abfrage aus, um die Berechtigungen für 5.1 und 5.0 anzuzeigen