Cấp tất cả quyền riêng tư trên cơ sở dữ liệu mydb
chousername
GRANT ALL PRIVILEGES ON mydb.* TO username;
Cấp quyền riêng tư trên bàn mydb.mytable
chousername
GRANT ALL PRIVILEGES ON mydb.mytable TO username;
Tôi khuyên bạn nên bỏ người dùng trước để xóa bất kỳ đặc quyền nào trên toàn máy chủ.
DROP USER username;
CREATE USER username;
GRANT ALL PRIVILEGES ON mydb.* TO username;
Tại sao bỏ người dùng trước? Khi bạn lần đầu tiên tạo một người dùng được gọi username
và đăng nhập, tên người dùng không có quyền riêng tư. Chỉ cần chạy SHOW GRANTS;
để xem nó. Nó nên nói một cái gì đó như GRANT USAGE ON *.* TO username
. Tại thời điểm đó, username
chỉ có thể đăng nhập. Đó là cơ hội của bạn để tạo ra các đặc quyền.
Nếu bạn chạy
GRANT ALL PRIVILEGES ON *.* TO username;
Tên người dùng sẽ có đặc quyền cơ sở dữ liệu toàn cầu (tất cả các cơ sở dữ liệu)
Nếu bạn chạy
GRANT ALL PRIVILEGES ON mydb.* TO username;
Tên người dùng sẽ chỉ có đặc quyền trên toàn mydb
cơ sở dữ liệu.
Nếu bạn chạy
GRANT ALL PRIVILEGES ON mydb.mytable TO username;
Tên người dùng sẽ chỉ có đặc quyền bảng trên mydb.mytable.
Bạn không thể trộn chúng. Nếu bạn vô tình trượt username
đặc quyền username
không nên có.
Nếu bạn muốn xem những đặc quyền nào tồn tại ở ba cấp độ, hãy chạy các truy vấn sau
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;
Dưới đây là thông tin cá nhân cho 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>
Chạy truy vấn để xem các đặc quyền cho 5.1 và 5.0