1. 查看某個用戶的權限:
假設我有的MySQL數據庫只有一個用戶,名爲root
- 列出所有用戶:
select concat('user:''',user,'''@''',host,''',') as quary from mysql.user;
或者更直接的寫法:
select user,host from mysql.user;
示例結果:
+--------------+-----------+
| user | host |
+--------------+-----------+
| root | localhost |
+--------------+-----------+
- 查看某個用戶的權限:
show grants for root@'localhost';
示例結果:
+---------------------------------------------------------------------+
| Grants for root@localhost |
+---------------------------------------------------------------------+
| GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' WITH GRANT OPTION |
| GRANT PROXY ON ''@'' TO 'root'@'localhost' WITH GRANT OPTION |
+---------------------------------------------------------------------+
2. 創建一個新用戶,名爲 myuser , 密碼爲123456
create user 'myuser' identified by '123456';
3.給予這個用戶bd_json表的所有權限:
grant all privileges on my_db.bd_json to myuser@'%' identified by '123456';
4、給予這個用戶bd_data表的create update select權限
grant create,update,select on my_db.bd_data to myuser@'%' identified by '123456';
常用的權限有:
all privileges:所有權限。
select:讀取權限。
delete:刪除權限。
update:更新權限。
create:創建權限。
drop:刪除數據庫、數據表權限
5 查看某個用戶的權限
SHOW GRANTS FOR 'testuser' @'%';
6 移除用戶權限
REVOKE USAGE ON *.* FROM 'testuser'@'%';
REVOKE ALL PRIVILEGES ON `test_db`.* FROM 'testuser'@'%';
7 授予用戶在某個數據庫上執行所有存儲過程的權限
GRANT EXECUTE ON `test_db`.* TO 'testuser'@'%';
8 授予某個用戶執行某個存儲過程的權限
GRANT EXECUTE ON PROCEDURE `procedure_name` TO 'testuser'@'%'
10 刷新權限
FLUSH PRIVILEGES;
參考文章:
MySQL | Grant / Revoke Privileges