利用 MySQL proxies_priv(模擬角色)實(shí)現(xiàn)類似用戶組管理
角色(Role)可以用來批量管理用戶,同一個角色下的用戶,擁有相同的權(quán)限。
MySQL5.7.X以后可以模擬角色(Role)的功能,通過mysql.proxies_priv模擬實(shí)現(xiàn)
1、配置proxy
1
|
mysql> show variables like "%proxy%" ; #查看當(dāng)前proxy是否開啟,下圖表示沒有開啟 |
1
2
|
mysql> set global check_proxy_users =on; #開啟proxy 下圖表示已開啟 mysql> set global mysql_native_password_proxy_users = on; |
1
2
|
mysql> exit Bye #以上設(shè)置參數(shù),對當(dāng)前會話無效,需要退出后重新登錄,或直接設(shè)置到my.cnf中去 |
2、創(chuàng)建用戶
1
2
3
4
|
mysql> create user will_dba; #類似組 mysql> create user 'will' ; mysql> create user 'tom' ; #密碼就不設(shè)置了,如需設(shè)置密碼后面加上identified by '123' |
3、將will_dba的權(quán)限映射(map)到will,tom
1
2
|
mysql> grant proxy on will_dba to will; mysql> grant proxy on will_dba to tom; |
4、給will_dba(模擬的Role)賦予實(shí)際權(quán)限
1
|
mysql> grant select on *.* to will_dba; |
5、查看 will_dba 的權(quán)限
1
|
mysql> show grants for will_dba; |
6、查看will,和tom 的權(quán)限
1
|
mysql> show grants for will; |
1
|
mysql> show grants for tom; |
7、查看 proxies_priv的權(quán)限
1
|
mysql> mysql> select * from mysql.proxies_priv; |
8、驗(yàn)證
使用will和tom用戶查看數(shù)據(jù)庫
1
2
3
4
|
[root@ test -1 ~] # mysql -utom -p mysql> show databases; #tom用戶我們之前沒有賦予權(quán)限,但這里可以查看 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
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持服務(wù)器之家。