溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

什么是mysql的權(quán)限控制機制

發(fā)布時間:2020-06-05 15:50:30 來源:網(wǎng)絡(luò) 閱讀:272 作者:三月 欄目:MySQL數(shù)據(jù)庫

本文主要給大家介紹什么是mysql的權(quán)限控制機制,文章內(nèi)容都是筆者用心摘選和編輯的,具有一定的針對性,對大家的參考意義還是比較大的,下面跟筆者一起了解下什么是mysql的權(quán)限控制機制吧。

權(quán)限控制機制        
四張表:user   db    tables_priv  columns_priv      privilege特權(quán)
mysql<select  from user\G
mysql<select  from db\G
mysql<select  from tables_priv\G
mysql<select * from columns_priv\G
1.用戶認(rèn)證
查看mysql.user表
2.權(quán)限認(rèn)證
以select權(quán)限為例:
先看        user表里的select_priv權(quán)限
Y  不會接著查看其他的表  擁有查看所有庫所有表的權(quán)限
N  接著看db表
db  
Y  不會接著查看其他的表  擁有查看所有庫所有表的權(quán)限
N  接著看tables_priv表
tables_priv
table_priv:  如果這個字段的值里包括select  擁有查看這張表所有
字段的權(quán)限,不會再接著往下看了
table_priv:如果這個字段的值里不包括select,接著查看下張表
還需要有column_priv字段權(quán)限

                                                columns_priv 
                                                                column_priv:  有select,則只對某一列有select權(quán)限
                                                                         沒有則對所有庫所有表沒有任何權(quán)限

db:
mysql> insert into db(host,db,user,Select_priv) values("10.18.44.%",'data','ying','Y');

tables_priv:
mysql> insert into tables_priv(host,db,user,table_name,table_priv) values('10.18.44.%','data','ying','t1','Select,insert');

columns_priv:
mysql> insert into columns_priv(host,db,user,table_name,column_name,column_priv) values('10.18.44.%','data','ying','t1','id','select');

host,db,user,Select_priv
host,db,user,table_name,table_priv
host,db,user,table_name,column_name,column_priv

刷新權(quán)限:兩種方式
修改表之后需要刷新權(quán)限
方式1:
mysql > flush privileges;          
方式2:

mysqladmin flush-privileges -u root -p1

五表聯(lián)動(5.7取消了host表)      
user表
登錄認(rèn)證:用戶能否進mysql查看user
權(quán)限認(rèn)證:如果能進,看user表的權(quán)限有沒有,沒有就看下一個db表,db表沒有看tables_priv,tables_priv沒有就去看columns_priv

當(dāng)db表的host字段為空的時候才會用到host表
db或者host 任何一個select是N,都是沒權(quán)限

使用命令授權(quán):grant  
也可創(chuàng)建新賬戶(不過后面的版本會移除這個功能,建議使用create user)  
語法格式:
grant 權(quán)限列表  on 庫名.表名 to '用戶名'@'客戶端主機'  [identified by '密碼'  with option參數(shù)];
==權(quán)限列表      all         所有權(quán)限(不包括授權(quán)權(quán)限)
select,update  
select(col1), insert(col1,col2)         Column level

==數(shù)據(jù)庫.表名    *.*         所有庫下的所有表                  Global level
                        web.*       web庫下的所有表                 Database level
                        web.stu_info    web庫下的stu_info表   Table level

==客戶端主機              %                          所有主機
                                    192.168.2.%         192.168.2.0網(wǎng)段的所有主機
                                    192.168.2.168           指定主機
                                    localhost                指定主機

with_option參數(shù)
GRANT OPTION:                                       授權(quán)選項
MAX_QUERIES_PER_HOUR:                   定義每小時允許執(zhí)行的查詢數(shù)
MAX_UPDATES_PER_HOUR:                   定義每小時允許執(zhí)行的更新數(shù)
MAX_CONNECTIONS_PER_HOUR:         定義每小時可以建立的連接數(shù)
MAX_USER_CONNECTIONS:                  定義單個用戶同時可以建立的連接數(shù)

mysql> grant select(id),insert(id) on wing.t1 to 'xiaowu'@'172.16.70.%' identified by '123';
mysql> grant select,insert on wing.t1 to 'xiaowu'@'172.16.70.%' identified by '123';        
mysql> grant all on wing.t1 to 'xiaowu'@'172.16.70.%' identified by '123';            
mysql> grant all on  . to 'xiaowu'@'172.16.70.%' identified by '123';                
mysql> grant all on  . to 'xiaowu'@'172.16.70.%' ;
mysql> grant all on  . to 'xiaowu'@'%';

查看權(quán)限
看自己的權(quán)限:
SHOW GRANTS\G

看別人的權(quán)限:
SHOW GRANTS FOR admin1@'%'\G  

撤銷權(quán)限:revoke
語法:
REVOKE 權(quán)限列表 ON 數(shù)據(jù)庫名 FROM 用戶名@‘客戶端主機’

mysql> revoke all on *.* from 'xiaowu'@'%';
mysql> revoke delete on *.*  from admin1@’%’;                                   //回收部分權(quán)限
REVOKE ALL PRIVILEGES  ON *.*  FROM admin2@’%’;                             //回收所有權(quán)限

REVOKE ALL PRIVILEGES,GRANT OPTION  ON *.* FROM 'admin2'@'%';

看完以上關(guān)于什么是mysql的權(quán)限控制機制,很多讀者朋友肯定多少有一定的了解,如需獲取更多的行業(yè)知識信息 ,可以持續(xù)關(guān)注我們的行業(yè)資訊欄目的。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI