MySQL 簡單權限控制(授予某個用戶執行某一個存儲過程的權限)

 

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用戶管理:添加用戶、授權、刪除用戶

MySQL | Grant / Revoke Privileges

MySQL權限詳解

MySQL GRANT語句簡介

 

 

 

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章