MySQL Workbench中的權(quán)限設(shè)置不生效
???現(xiàn)象:
這個test賬號我只給了兩個數(shù)據(jù)庫權(quán)限,為什么它連接還是能看到其他數(shù)據(jù)庫。下圖是這個賬號的設(shè)置。

test 賬號能看到其他數(shù)據(jù)庫,很可能是因?yàn)樗鼡碛辛四硞€“全局級別”的權(quán)限,比如 SHOW DATABASES。只要用戶有任意一個全局權(quán)限,MySQL 就會允許他查看服務(wù)器上所有數(shù)據(jù)庫的名字,這可能會造成一些安全風(fēng)險。
?? 為什么一個全局權(quán)限會導(dǎo)致看到所有數(shù)據(jù)庫?
在 MySQL 中,權(quán)限的授予范圍是分層級的。其中,“全局權(quán)限”(*.*)是所有權(quán)限里最高的一級。根據(jù) MySQL 的官方設(shè)計,只要用戶擁有了任何一個全局權(quán)限,系統(tǒng)在執(zhí)行 SHOW DATABASES 命令時,就會向其展示服務(wù)器上所有數(shù)據(jù)庫的名稱。
???♂? 排查問題:test 賬號擁有哪些權(quán)限?
按照下面的步驟來檢查 test 賬號的具體權(quán)限,應(yīng)該就能找到是哪個全局權(quán)限導(dǎo)致了問題。
登錄數(shù)據(jù)庫:用
root或其他有管理權(quán)限的賬號登錄 MySQL。mysql -u root -p
查看用戶權(quán)限:在 MySQL 命令行中,執(zhí)行以下 SQL 命令:
SHOW GRANTS FOR 'test'@'%';
請注意:賬號由用戶名 (test) 和主機(jī)名 (%) 共同組成。

分析返回結(jié)果:重點(diǎn)檢查輸出中是否包含
GRANT ... ON \*.\* TO ...這樣的語句。這類語句就代表了全局權(quán)限。
?? 解決方案:如何限制用戶只能看到授權(quán)的數(shù)據(jù)庫?
想解決這個問題,核心思路就是移除用戶多余的全局權(quán)限。
1. 方案一:移除SHOW DATABASES權(quán)限(推薦)
如果你只希望用戶看不到其他數(shù)據(jù)庫,但無需回收他的其他權(quán)限,可以只撤銷 SHOW DATABASES 權(quán)限。在命令行中執(zhí)行:
REVOKE SHOW DATABASES ON *.* FROM 'test'@'%';
2. 方案二:檢查并回收不必要的全局權(quán)限
你也可以選擇移除所有不必要的全局權(quán)限,僅保留數(shù)據(jù)庫級別的授權(quán)。操作前請先查詢并評估,再執(zhí)行撤銷:
-- 1. 查詢當(dāng)前權(quán)限以評估 SHOW GRANTS FOR 'test'@'%'; -- 2. 移除不必要的全局權(quán)限,例如: REVOKE SELECT ON *.* FROM 'test'@'%';
3. 驗(yàn)證結(jié)果
執(zhí)行權(quán)限回收后,可以讓 test 重新登錄并運(yùn)行 SHOW DATABASES; 命令,檢查數(shù)據(jù)庫列表是否已符合預(yù)期。
?? 核心總結(jié)
理解權(quán)限層級是關(guān)鍵,MySQL 的這種設(shè)計是為了兼顧安全性與可用性:
- 安全性優(yōu)先:默認(rèn)行為是“最小權(quán)限原則”,即用戶只能看到自己有權(quán)限訪問的數(shù)據(jù)。這有效防止了低權(quán)限用戶通過
SHOW DATABASES來探測服務(wù)器上的所有數(shù)據(jù)庫名稱,降低了信息泄露的風(fēng)險。 - 全局權(quán)限的雙刃劍:作為最高層級的權(quán)限,全局權(quán)限能極大地方便管理員操作,但也會產(chǎn)生“看到所有數(shù)據(jù)庫”的副作用。因此,在給普通業(yè)務(wù)賬號授予任何全局權(quán)限時,都需格外謹(jǐn)慎。
到此這篇關(guān)于MySQL Workbench中的權(quán)限設(shè)置不生效的文章就介紹到這了,更多相關(guān)MySQL Workbench權(quán)限不生效內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
IDEA 鏈接Mysql數(shù)據(jù)庫并執(zhí)行查詢操作的完整代碼
這篇文章主要介紹了IDEA 鏈接Mysql數(shù)據(jù)庫并執(zhí)行查詢操作的完整代碼,代碼不難,詳細(xì)大家看完本文肯定有意向不到的收獲,感興趣的朋友跟隨小編一起看看吧2021-05-05
RHEL 6平臺MySQL數(shù)據(jù)庫服務(wù)器的安裝方法
這篇文章主要為大家詳細(xì)介紹了RHEL 6平臺MySQL數(shù)據(jù)庫服務(wù)器的安裝方法,感興趣的小伙伴們可以參考一下2016-05-05
Mysql縱表轉(zhuǎn)換為橫表的方法及優(yōu)化教程
在應(yīng)用中為了從不同的視圖去分析數(shù)據(jù),會使用不同的方案去查詢數(shù)據(jù)庫,橫表和縱表的相互轉(zhuǎn)換就是其中一個常見的情景,這篇文章主要給大家介紹了關(guān)于Mysql縱表轉(zhuǎn)換為橫表的相關(guān)資料,需要的朋友可以參考下2021-08-08
mysql利用init-connect增加訪問審計功能的實(shí)現(xiàn)
下面小編就為大家?guī)硪黄猰ysql利用init-connect增加訪問審計功能的實(shí)現(xiàn)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-03-03
SQLyog錯誤號碼MySQL?plugin?caching_sha2_password?could?not?
這篇文章主要介紹了SQLyog錯誤號碼?plugin?caching_sha2_password?could?not?be?loaded的解決方法,需要的朋友可以參考下2023-06-06

