MySQL查看用戶權(quán)限及權(quán)限管理的方法詳解
一、 MySQL權(quán)限級(jí)別介紹
全局——可以管理整個(gè)MySQL
庫(kù)——可以管理指定的數(shù)據(jù)庫(kù)
表——可以管理指定數(shù)據(jù)庫(kù)的指定表
字段——可以管理指定數(shù)據(jù)庫(kù)的指定表的指定字段
權(quán)限存儲(chǔ)在mysql庫(kù)的user, db, tables_priv, columns_priv, procs_priv這幾個(gè)系統(tǒng)表中,待MySQL實(shí)例啟動(dòng)后就加載到內(nèi)存中
二、查看用戶權(quán)限
1、查看所有用戶(用戶名、給誰(shuí)授權(quán))
SELECT user,host FROM mysql.user;

2、查看單個(gè)用戶所有情況
SELECT * FROM mysql.user WHERE user='root'\G
\g 相當(dāng)于’;’
\G使每個(gè)字段打印到單獨(dú)的行,也有’;'的作用

加粗樣式用戶信息:授權(quán)對(duì)象,連接用戶名,用戶密碼
Host: % # 授權(quán)用戶,% 代表所有 User: root # 用戶名 authentication_string: *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 #密碼,MD5加密
授權(quán)信息
Select_priv:確定用戶是否可以通過SELECT命令選擇數(shù)據(jù) Insert_priv:確定用戶是否可以通過INSERT命令插入數(shù)據(jù) Update_priv:確定用戶是否可以通過UPDATE命令修改現(xiàn)有數(shù)據(jù) Delete_priv:確定用戶是否可以通過DELETE命令刪除現(xiàn)有數(shù)據(jù) Create_priv:確定用戶是否可以創(chuàng)建新的數(shù)據(jù)庫(kù)和表 Drop_priv:確定用戶是否可以刪除現(xiàn)有數(shù)據(jù)庫(kù)和表 Reload_priv:確定用戶是否可以執(zhí)行刷新和重新加載MySQL所用各種內(nèi)部緩存的特定命令,包括日志、權(quán)限、主機(jī)、查詢和表 Shutdown_priv:確定用戶是否可以關(guān)閉MySQL服務(wù)器,將此權(quán)限提供給root賬戶之外的任何用戶時(shí),都應(yīng)當(dāng)非常謹(jǐn)慎 Process_priv:確定用戶是否可以通過SHOW File_priv:確定用戶是否可以執(zhí)行SELECT INTO OUTFILE和LOAD DATA INFILE命令 Grant_priv:確定用戶是否可以將已經(jīng)授予給該用戶自己的權(quán)限再授予其他用戶,例如,如果用戶可以插入、選擇和刪除foo數(shù)據(jù)庫(kù)中的信息,并且授予了GRANT權(quán)限,則該用戶就可以將其任何或全部權(quán)限授予系統(tǒng)中的任何其他用戶 References_priv:目前只是某些未來(lái)功能的占位符,現(xiàn)在沒有作用 Index_priv:確定用戶是否可以創(chuàng)建和刪除表索引 Alter_priv:確定用戶是否可以重命名和修改表結(jié)構(gòu) Show_db_priv:確定用戶是否可以查看服務(wù)器上所有數(shù)據(jù)庫(kù)的名字,包括用戶擁有足夠訪問權(quán)限的數(shù)據(jù)庫(kù),可以考慮對(duì)所有用戶禁用這個(gè)權(quán)限,除非有特別不可抗拒的原因 Super_priv:確定用戶是否可以執(zhí)行某些強(qiáng)大的管理功能,例如通過KILL命令刪除用戶進(jìn)程,使用SET GLOBAL修改全局MySQL變量,執(zhí)行關(guān)于復(fù)制和日志的各種命令 Create_tmp_table_priv:確定用戶是否可以創(chuàng)建臨時(shí)表 Lock_tables_priv:確定用戶是否可以使用LOCK Execute_priv:確定用戶是否可以執(zhí)行存儲(chǔ)過程,此權(quán)限只在MySQL 5.0及更高版本中有意義 Repl_slave_priv:確定用戶是否可以讀取用于維護(hù)復(fù)制數(shù)據(jù)庫(kù)環(huán)境的二進(jìn)制日志文件,此用戶位于主系統(tǒng)中,有利于主機(jī)和客戶機(jī)之間的通信 Repl_client_priv:確定用戶是否可以確定復(fù)制從服務(wù)器和主服務(wù)器的位置 Create_view_priv:確定用戶是否可以創(chuàng)建視圖,此權(quán)限只在MySQL 5.0及更高版本中有意義 Show_view_priv:確定用戶是否可以查看視圖或了解視圖如何執(zhí)行,此權(quán)限只在MySQL 5.0及更高版本中有意義 Create_routine_priv:確定用戶是否可以更改或放棄存儲(chǔ)過程和函數(shù),此權(quán)限是在MySQL 5.0中引入的 Alter_routine_priv:確定用戶是否可以修改或刪除存儲(chǔ)函數(shù)及函數(shù),此權(quán)限是在MySQL 5.0中引入的 Create_user_priv:確定用戶是否可以執(zhí)行CREATE Event_priv:確定用戶能否創(chuàng)建、修改和刪除事件,這個(gè)權(quán)限是MySQL 5.1.6新增的 Trigger_priv:確定用戶能否創(chuàng)建和刪除觸發(fā)器,這個(gè)權(quán)限是MySQL 5.1.6新增的 Create_tablespace_priv: 創(chuàng)建表的空間
權(quán)限表

三、授權(quán)
每次更新權(quán)限后記得刷新權(quán)限
FLUSH PRIVILEGES;
格式:
GRANT [權(quán)限] ON [庫(kù).表] TO [用戶名]@[IP] IDENTIFIED BY [密碼] # WITH GRANT OPTION;
GRANT命令說(shuō)明:
(1)ALL PRIVILEGES 表示所有權(quán)限,你也可以使用select、update等權(quán)限。
(2)ON 用來(lái)指定權(quán)限針對(duì)哪些庫(kù)和表。
(3)*.* 中前面的號(hào)用來(lái)指定數(shù)據(jù)庫(kù)名,后面的號(hào)用來(lái)指定表名。
(4)TO 表示將權(quán)限賦予某個(gè)用戶。
(5)@ 前面表示用戶,@后面接限制的主機(jī),可以是IP、IP段、域名以及%,%表示任何地方。
(6)IDENTIFIED BY 指定用戶的登錄密碼。
(7)WITH GRANT OPTION 這個(gè)選項(xiàng)表示該用戶可以將自己擁有的權(quán)限授權(quán)給別人。
注意:經(jīng)常有人在創(chuàng)建操作用戶的時(shí)候不指定WITH GRANT OPTION選項(xiàng)導(dǎo)致后來(lái)該用戶不能使用GRANT命令創(chuàng)建用戶或者給其它用戶授權(quán)。
備注:可以使用GRANT重復(fù)給用戶添加權(quán)限,權(quán)限疊加,比如你先給用戶添加一個(gè)select權(quán)限,然后又給用戶添加一個(gè)insert權(quán)限,那么該用戶就同時(shí)擁有了select和insert權(quán)限。
1、全局授權(quán)(直接把 root 限制主機(jī)改為 %,任意主機(jī))
因?yàn)?root 是數(shù)據(jù)庫(kù)用戶默認(rèn)最高權(quán)限
UPDATE mysql.user SET user.Host='%' where user.User='root'; FLUSH PRIVILEGES;
當(dāng)然也可以新建一個(gè)用戶,給與全部權(quán)限
GRANT ALL PRIVILEGES ON *.* TO admin@'175.155.59.133' IDENTIFIED BY 'admin';
這樣你就可以在遠(yuǎn)程連接到該數(shù)據(jù)庫(kù),且獲取全部權(quán)限。

2、單個(gè)數(shù)據(jù)庫(kù)授權(quán)
只給175.155.59.133這個(gè) IP 賦給 ctrip 數(shù)據(jù)庫(kù) 查詢的權(quán)限,用戶:ctrip,密碼:ctrip
GRANT select ON ctrip.* TO ctrip@'175.155.59.133' IDENTIFIED BY 'ctrip';
聲明:
(1)用ipconfig查詢出來(lái)的IP,那是局域網(wǎng)的,這么設(shè)置只能局域網(wǎng)內(nèi)使用,
(2)要想服務(wù)器和本機(jī)連接,IP 必須是網(wǎng)關(guān)的IP,推薦使用 https://www.ipip.net/ 查詢自己的 IP。

可以看到本機(jī)連接有 ctrip 數(shù)據(jù)庫(kù)和一個(gè)數(shù)據(jù)庫(kù)本身庫(kù),而看不到其他庫(kù)。注意此時(shí)可以看到兩個(gè)表。


3、單個(gè)數(shù)據(jù)庫(kù)單個(gè)表授權(quán)
GRANT select ON ctrip.t_plane TO ctrip@'175.155.59.133' IDENTIFIED BY 'ctrip';
可以看到只有一個(gè)表顯示出來(lái),注意現(xiàn)在字段

4、單個(gè)數(shù)據(jù)庫(kù)單個(gè)表授權(quán)某些字段授權(quán)
GRANT select(id,EN) ON ctrip.t_plane TO ctrip@'175.155.59.133' IDENTIFIED BY 'ctrip';

四、收回權(quán)限、刪除用戶
1、收回權(quán)限
格式:
REVOKE [權(quán)限] ON [庫(kù).表] FROM [用戶名]@[IP];
操作:
REVOKE select(id,EN) ON ctrip.t_plane FROM ctrip@'175.155.59.133';
2、刪除用戶
格式:
DROP USER [用戶名]@[IP];
操作:
DROP USER ctrip@'175.155.59.133';
以上就是MySQL查看用戶權(quán)限及權(quán)限管理的方法詳解的詳細(xì)內(nèi)容,更多關(guān)于MySQL用戶權(quán)限及管理的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
Mysql存儲(chǔ)過程和函數(shù)區(qū)別介紹
這篇文章主要介紹了Mysql存儲(chǔ)過程和函數(shù)的區(qū)別,需要的朋友可以參考下2014-03-03
MySQL中參數(shù)sql_safe_updates在生產(chǎn)環(huán)境的使用詳解
這篇文章主要給大家介紹了關(guān)于MySQL中參數(shù)sql_safe_updates在生產(chǎn)環(huán)境使用的相關(guān)資料,并給大家分享了解決mysql sql_safe_updates不支持子查詢更新的方法,分享出來(lái)供大家參考學(xué)習(xí),需要的朋友們下面來(lái)一起看看吧。2017-11-11
MySQL實(shí)現(xiàn)可重入鎖的實(shí)踐指南
本文介紹了如何在MySQL中實(shí)現(xiàn)可重入鎖,包括鎖表設(shè)計(jì)、加鎖和解鎖邏輯以及為什么必須使用事務(wù)來(lái)保證鎖的互斥性、原子性和生命周期,需要的朋友可以參考下2026-03-03
MySQL中定時(shí)器的底層實(shí)現(xiàn)原理及使用方法
定時(shí)器可以用于定期執(zhí)行特定的SQL語(yǔ)句、備份數(shù)據(jù)、生成報(bào)表等操作,本文將詳細(xì)介紹MySQL中定時(shí)器的底層實(shí)現(xiàn)機(jī)制以及如何使用它2023-07-07
mysql如何按字段查詢重復(fù)的數(shù)據(jù)
這篇文章主要介紹了mysql如何按字段查詢重復(fù)的數(shù)據(jù)問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-05-05
MySQL實(shí)現(xiàn)數(shù)據(jù)插入操作的示例詳解
使用MySQL插入數(shù)據(jù)時(shí),可以根據(jù)需求場(chǎng)景選擇合適的插入語(yǔ)句。本文通過給出每個(gè)使用場(chǎng)景下的實(shí)例來(lái)說(shuō)明數(shù)據(jù)插入的實(shí)現(xiàn)過程和方法,希望對(duì)大家有所幫助2023-02-02
詳解MySQL存儲(chǔ)過程的創(chuàng)建和調(diào)用
這篇文章主要為大家介紹了MySQL存儲(chǔ)過程的創(chuàng)建和調(diào)用,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來(lái)幫助2021-12-12

