MySQL查看用戶權(quán)限及權(quán)限管理的方法詳解
一、 MySQL權(quán)限級別介紹
全局——可以管理整個MySQL
庫——可以管理指定的數(shù)據(jù)庫
表——可以管理指定數(shù)據(jù)庫的指定表
字段——可以管理指定數(shù)據(jù)庫的指定表的指定字段
權(quán)限存儲在mysql庫的user, db, tables_priv, columns_priv, procs_priv
這幾個系統(tǒng)表中,待MySQL實例啟動后就加載到內(nèi)存中
二、查看用戶權(quán)限
1、查看所有用戶(用戶名、給誰授權(quán))
SELECT user,host FROM mysql.user;
2、查看單個用戶所有情況
SELECT * FROM mysql.user WHERE user='root'\G
\g 相當于’;’
\G使每個字段打印到單獨的行,也有’;'的作用
加粗樣式用戶信息:授權(quán)對象,連接用戶名,用戶密碼
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ù)庫和表 Drop_priv:確定用戶是否可以刪除現(xiàn)有數(shù)據(jù)庫和表 Reload_priv:確定用戶是否可以執(zhí)行刷新和重新加載MySQL所用各種內(nèi)部緩存的特定命令,包括日志、權(quán)限、主機、查詢和表 Shutdown_priv:確定用戶是否可以關(guān)閉MySQL服務(wù)器,將此權(quán)限提供給root賬戶之外的任何用戶時,都應(yīng)當非常謹慎 Process_priv:確定用戶是否可以通過SHOW File_priv:確定用戶是否可以執(zhí)行SELECT INTO OUTFILE和LOAD DATA INFILE命令 Grant_priv:確定用戶是否可以將已經(jīng)授予給該用戶自己的權(quán)限再授予其他用戶,例如,如果用戶可以插入、選擇和刪除foo數(shù)據(jù)庫中的信息,并且授予了GRANT權(quán)限,則該用戶就可以將其任何或全部權(quán)限授予系統(tǒng)中的任何其他用戶 References_priv:目前只是某些未來功能的占位符,現(xiàn)在沒有作用 Index_priv:確定用戶是否可以創(chuàng)建和刪除表索引 Alter_priv:確定用戶是否可以重命名和修改表結(jié)構(gòu) Show_db_priv:確定用戶是否可以查看服務(wù)器上所有數(shù)據(jù)庫的名字,包括用戶擁有足夠訪問權(quán)限的數(shù)據(jù)庫,可以考慮對所有用戶禁用這個權(quán)限,除非有特別不可抗拒的原因 Super_priv:確定用戶是否可以執(zhí)行某些強大的管理功能,例如通過KILL命令刪除用戶進程,使用SET GLOBAL修改全局MySQL變量,執(zhí)行關(guān)于復(fù)制和日志的各種命令 Create_tmp_table_priv:確定用戶是否可以創(chuàng)建臨時表 Lock_tables_priv:確定用戶是否可以使用LOCK Execute_priv:確定用戶是否可以執(zhí)行存儲過程,此權(quán)限只在MySQL 5.0及更高版本中有意義 Repl_slave_priv:確定用戶是否可以讀取用于維護復(fù)制數(shù)據(jù)庫環(huán)境的二進制日志文件,此用戶位于主系統(tǒng)中,有利于主機和客戶機之間的通信 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:確定用戶是否可以更改或放棄存儲過程和函數(shù),此權(quán)限是在MySQL 5.0中引入的 Alter_routine_priv:確定用戶是否可以修改或刪除存儲函數(shù)及函數(shù),此權(quán)限是在MySQL 5.0中引入的 Create_user_priv:確定用戶是否可以執(zhí)行CREATE Event_priv:確定用戶能否創(chuàng)建、修改和刪除事件,這個權(quán)限是MySQL 5.1.6新增的 Trigger_priv:確定用戶能否創(chuàng)建和刪除觸發(fā)器,這個權(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 [庫.表] TO [用戶名]@[IP] IDENTIFIED BY [密碼] # WITH GRANT OPTION;
GRANT命令說明:
(1)ALL PRIVILEGES
表示所有權(quán)限,你也可以使用select、update等權(quán)限。
(2)ON
用來指定權(quán)限針對哪些庫和表。
(3)*.*
中前面的號用來指定數(shù)據(jù)庫名,后面的號用來指定表名。
(4)TO
表示將權(quán)限賦予某個用戶。
(5)@
前面表示用戶,@后面接限制的主機,可以是IP、IP段、域名以及%,%表示任何地方。
(6)IDENTIFIED BY
指定用戶的登錄密碼。
(7)WITH GRANT OPTION
這個選項表示該用戶可以將自己擁有的權(quán)限授權(quán)給別人。
注意:經(jīng)常有人在創(chuàng)建操作用戶的時候不指定WITH GRANT OPTION選項導(dǎo)致后來該用戶不能使用GRANT命令創(chuàng)建用戶或者給其它用戶授權(quán)。
備注:可以使用GRANT重復(fù)給用戶添加權(quán)限,權(quán)限疊加,比如你先給用戶添加一個select權(quán)限,然后又給用戶添加一個insert權(quán)限,那么該用戶就同時擁有了select和insert權(quán)限。
1、全局授權(quán)(直接把 root 限制主機改為 %,任意主機)
因為 root 是數(shù)據(jù)庫用戶默認最高權(quán)限
UPDATE mysql.user SET user.Host='%' where user.User='root'; FLUSH PRIVILEGES;
當然也可以新建一個用戶,給與全部權(quán)限
GRANT ALL PRIVILEGES ON *.* TO admin@'175.155.59.133' IDENTIFIED BY 'admin';
這樣你就可以在遠程連接到該數(shù)據(jù)庫,且獲取全部權(quán)限。
2、單個數(shù)據(jù)庫授權(quán)
只給175.155.59.133這個 IP 賦給 ctrip 數(shù)據(jù)庫 查詢的權(quán)限,用戶:ctrip,密碼:ctrip
GRANT select ON ctrip.* TO ctrip@'175.155.59.133' IDENTIFIED BY 'ctrip';
聲明:
(1)用ipconfig查詢出來的IP,那是局域網(wǎng)的,這么設(shè)置只能局域網(wǎng)內(nèi)使用,
(2)要想服務(wù)器和本機連接,IP 必須是網(wǎng)關(guān)的IP,推薦使用 https://www.ipip.net/ 查詢自己的 IP。
可以看到本機連接有 ctrip 數(shù)據(jù)庫和一個數(shù)據(jù)庫本身庫,而看不到其他庫。注意此時可以看到兩個表。
3、單個數(shù)據(jù)庫單個表授權(quán)
GRANT select ON ctrip.t_plane TO ctrip@'175.155.59.133' IDENTIFIED BY 'ctrip';
可以看到只有一個表顯示出來,注意現(xiàn)在字段
4、單個數(shù)據(jù)庫單個表授權(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 [庫.表] 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)限管理的方法詳解的詳細內(nèi)容,更多關(guān)于MySQL用戶權(quán)限及管理的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
Mysql| 使用通配符進行模糊查詢詳解(like,%,_)
這篇文章主要介紹了Mysql| 使用通配符進行模糊查詢詳解(like,%,_),具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-08-08MySQL啟動報錯提示發(fā)生系統(tǒng)錯誤5,拒絕訪問的原因和解決方法
使用命令net start mysql啟動數(shù)據(jù)庫服務(wù)時候,出現(xiàn)如下錯誤提示發(fā)生系統(tǒng)錯誤5,拒絕訪問,所以本文給大家介紹了MySQL啟動報錯提示發(fā)生系統(tǒng)錯誤5,拒絕訪問的原因和解決方法,需要的朋友可以參考下2024-01-01安裝mysql8.0.11及修改root密碼、連接navicat for mysql的思路詳解
這篇文章主要介紹了安裝mysql8.0.11以及修改root密碼、連接navicat for mysql,需要的朋友可以參考下2018-06-06