利用 MySQL proxies_priv(模擬角色)實現類似用戶組管理
角色(Role)可以用來批量管理用戶,同一個角色下的用戶,擁有相同的權限。
MySQL5.7.X以后可以模擬角色(Role)的功能,通過mysql.proxies_priv模擬實現
1、配置proxy
mysql> show variables like "%proxy%"; #查看當前proxy是否開啟,下圖表示沒有開啟

mysql> set global check_proxy_users =on; #開啟proxy 下圖表示已開啟
mysql> set global mysql_native_password_proxy_users = on;

mysql> exit
Bye #以上設置參數,對當前會話無效,需要退出后重新登錄,或直接設置到my.cnf中去
2、創建用戶
mysql> create user will_dba; #類似組
mysql> create user 'will';
mysql> create user 'tom';
#密碼就不設置了,如需設置密碼后面加上identified by '123'
3、將will_dba的權限映射(map)到will,tom
mysql> grant proxy on will_dba to will;
mysql> grant proxy on will_dba to tom;
4、給will_dba(模擬的Role)賦予實際權限
mysql> grant select on *.* to will_dba;
5、查看 will_dba 的權限
mysql> show grants for will_dba;

6、查看will,和tom 的權限
mysql> show grants for will;

mysql> show grants for tom;

7、查看 proxies_priv的權限
mysql> mysql> select * from mysql.proxies_priv;

8、驗證
使用will和tom用戶查看數據庫
[root@test-1 ~]# mysql -utom -p
mysql> show databases; #tom用戶我們之前沒有賦予權限,但這里可以查看
mysql> show tables;
mysql> select * from user\G



mysql.proxies_priv僅僅是對Role的模擬,和Oracle的角色還是有所不同.官方稱呼為Role like
MySQL5.6.X模擬Role功能需要安裝插件,具體方法請參考:
https://dev.mysql.com/doc/refman/5.6/en/proxy-users.html
https://dev.mysql.com/doc/refman/5.6/en/pluggable-authentication.html
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
您可能感興趣的文章:- MySQL用戶權限管理詳解
- MySQL中基本的用戶和權限管理方法小結
- mysql命令行下用戶管理方法分享
- MySQL用戶與權限的管理詳解
- MySQL用戶權限驗證與管理方法詳解
- php實現mysql數據庫連接操作及用戶管理
- MySQL用戶管理
- MySQL用戶賬戶管理和權限管理深入講解
- Mysql數據庫高級用法之視圖、事務、索引、自連接、用戶管理實例分析
- mysql用戶權限管理實例分析
- mysql用戶管理操作實例分析
- MySQL 8.0用戶和角色管理原理與用法詳解