溫馨提示×

溫馨提示×

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

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

mysql權(quán)限有哪些

發(fā)布時間:2020-07-28 09:36:48 來源:億速云 閱讀:236 作者:風(fēng)陵渡口_ 欄目:MySQL數(shù)據(jù)庫

小編給大家分享一下mysql權(quán)限有哪些,希望大家閱讀完這篇文章后大所收獲,下面讓我們一起去探討吧!

                           


mysql的各種權(quán)限:
1.usage:連接(登錄)權(quán)限,建立一個用戶,就會自動授予其usage權(quán)限(默認授予),
該權(quán)限只能用于數(shù)據(jù)庫登陸,不能執(zhí)行任何操作;且usage權(quán)限不能被回收,也即REVOKE用戶并不能刪除用戶。
2.select:必須有select權(quán)限才能使用select table

3.create :必須有create的權(quán)限,才可以使用create table
4.create routine:必須具有create routine的權(quán)限,才可以使用{create |alter|drop} {procedure|function}
當授予create routine時,自動授予EXECUTE, ALTER ROUTINE權(quán)限給它的創(chuàng)建者:
5.create temporary tables:(注意這里是tables,不是table)必須有create temporary tables的權(quán)限,才可以使用create temporary tables
6.create view 必須有create view的權(quán)限,才可以使用create view 
7.create user:要使用CREATE USER,必須擁有mysql數(shù)據(jù)庫的全局CREATE USER權(quán)限,或擁有INSERT權(quán)限。
8.insert:
必須有insert的權(quán)限,才可以使用insert into ….. values….
9.alter:必須有alter的權(quán)限,才可以使用alter table

10. alter routine:必須具有alter routine的權(quán)限,才可以使用{alter |drop} {procedure|function}

undefinedupdateundefined必須有update的權(quán)限,才可以使用update table
12. delete:必須有delete的權(quán)限,才可以使用delete from ….where….(刪除表中的記錄)
13. drop:必須有drop的權(quán)限,才可以使用drop database db_name; drop table tab_name;
14. show database:通過show database只能看到你擁有的某些權(quán)限的數(shù)據(jù)庫,除非你擁有全局SHOW DATABASES權(quán)限。
15:show view:
必須擁有show view權(quán)限,才能執(zhí)行show create view。

16. index:必須擁有index權(quán)限,才能執(zhí)行[create |drop] index
17.execute :執(zhí)行存在的Functions,Procedures
18.lock tables:必須擁有l(wèi)ock tables權(quán)限,才可以使用lock tables
19.
 references:有了REFERENCES權(quán)限,用戶就可以將其它表的一個字段作為某一個表的外鍵約束。
20. reload:必須擁有reload權(quán)限,才可以執(zhí)行flush [tables | logs | privileges]
21. replication client:擁有此權(quán)限可以查詢master server、slave server狀態(tài)。
22.
replication slave擁有此權(quán)限可以查看從服務(wù)器,從主服務(wù)器讀取二進制日志。
23. file:擁有file權(quán)限才可以執(zhí)行 select ..into outfile和load data infile…操作,但是不要把file, process, super權(quán)限授予管理員以外的賬號,這樣存在嚴重的安全隱患。
24. super:這個權(quán)限允許用戶終止任何查詢;修改全局變量的SET語句;使用CHANGE MASTER,PURGE MASTER LOGS。
25. process:通過這個權(quán)限,用戶可以執(zhí)行SHOW PROCESSLIST和KILL命令。默認情況下,每個用戶都可以執(zhí)行SHOW PROCESSLIST命令,但是只能查詢本用戶的進程
PS:
管理權(quán)限(如 super, process, file等)不能夠指定某個數(shù)據(jù)庫,on后面必須跟*.*



先了解一下mysql兩階段驗證:

第一階段:服務(wù)器首先會檢查你是否允許連接。因為創(chuàng)建用戶的時候會加上主機限制,可以限制成本地、某個IP、某個IP段、以及任何地方等,只允許你從配置的指定地方登陸。
第二階段:如果你能連接,Mysql會檢查你發(fā)出的每個請求,看你是否有足夠的權(quán)限實施它。比如你要更新某個表、或者查詢某個表,Mysql會查看你對哪個表或者某個列是否有權(quán)限。
一、授權(quán)
mysql> grant all privileges on *.* to 'myuser'@'%' identified by '123456' with grant option;
all privileges:表示將所有權(quán)限授予給用戶,也可指定具體的權(quán)限,如select,update,delete等;
on:表示這些權(quán)限對那些數(shù)據(jù)庫和表生效,格式:dbname.tablename  這里寫的是所有數(shù)據(jù)庫下的所有表、
to:將權(quán)限授予那個用戶
'myuser'@'%':@后面接限制的主機,可以是IP、IP段、域名以及%,%表示任何地方。注意:這里%有的版本不包括本地,以前碰到過給某個用戶設(shè)置了%允許任何地方登錄,但是在本地登錄不了,這個和版本有關(guān)系,遇到這個問題再加一個localhost的用戶就可以了。
identified  by:指定用戶的登錄密碼;
with grant option:這個選項表示該用戶可以將自己擁有的權(quán)限授權(quán)給別人。注意:經(jīng)常有人在創(chuàng)建操作用戶的時候不指定WITH GRANT OPTION選項導(dǎo)致后來該用戶不能使用GRANT命令創(chuàng)建用戶或者給其他用戶授權(quán)。
PS:可以使用GRANT重復(fù)給用戶添加權(quán)限,權(quán)限疊加,比如你先給用戶添加了一個select權(quán)限,然后又給用戶添加了一個insert權(quán)限,那么該用戶就同時擁有了select和insert權(quán)限.
1.創(chuàng)建一個超級用戶:創(chuàng)建一個只允許從本地登錄的超級用戶u01,并允許將權(quán)限賦予別的用戶
GRANT ALL PRIVILEGES ON *.* TO u01@'localhost' IDENTIFIED BY '111111' WITH GRANT OPTION;
2.創(chuàng)建一個網(wǎng)站用戶:(程序用戶)
創(chuàng)建一個一般的程序用戶,這個用戶可能只需要SELECT, INSERT, UPDATE, DELETE, CREATE TEMPORARY TABLES等權(quán)限如果有存儲過程還需要加上EXECUTE權(quán)限,一般是指定內(nèi)網(wǎng)網(wǎng)段192.168.10網(wǎng)段。
GRANT  USAGE,SELECT, INSERT, UPDATE, DELETE, SHOW VIEW ,CREATE TEMPORARY TABLES,EXECUTE ON `test`.* TO webuser@'192.168.10.%' IDENTIFIED BY  '123456';
3.創(chuàng)建一個普通用戶:(僅有查詢權(quán)限)
GRANT USAGE,SELECT ON `test`.* TO public@'192.168.10.%' IDENTIFIED BY  '123456';
二、權(quán)限管理
1.刷新權(quán)限:

使用這個命令使權(quán)限生效,尤其是你對那些權(quán)限表user、db、host等做了update或者delete更新的時候。以前遇到過使用grant后權(quán)限沒有更新的情況,大家可以養(yǎng)成習(xí)慣,只要對權(quán)限做了更改就使用FLUSH PRIVILEGES命令來刷新權(quán)限。

FLUSH PRIVILEGES;

2.查看權(quán)限:

使用如下命令可以方便的查看到某個用戶的權(quán)限:

SHOW GRANTS FOR 'webuser'@'192.168.10.%';
3.回收權(quán)限:

將前面創(chuàng)建的webuser用戶的DELETE權(quán)限回收,使用如下命令

REVOKE DELETE ON test.* FROM 'webuser'@'192.168.10.%';


4.刪除用戶
1.
刪除用戶
DROP USER 'webuser'@'192.168.10.%';
drop  user 會將該用戶的信息全部刪掉,而 delete  只會清除user表,其他的比如db表中的信息還是存在。如果delete 后,再創(chuàng)建一個最小權(quán)限的用戶,那么他會重用以前的權(quán)限。

看完了這篇文章,相信你對mysql權(quán)限有哪些有了一定的了解,想了解更多相關(guān)知識,歡迎關(guān)注億速云行業(yè)資訊頻道,感謝各位的閱讀!

向AI問一下細節(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