2010-03-17 83 views
1

我在客戶端使用mysql C++ wrapper連接到mysql服務器。當用戶建立到mysql服務器的連接時,我想知道用戶是否具有root權限(即GRANT ALL PRIVILEGES ON *.* TO 'username'@'%' WITH GRANT OPTION)。

SHOW GRANTS FOR CURRENT_USER查詢爲當前用戶提供授權,但我需要解析字符串並進行比較以瞭解當前用戶是否具有root權限。我正在尋找替代選項。我如何檢查mysql用戶擁有像root用戶一樣的權限

+0

介意給**一些你的問題答案? – ajreal 2010-12-17 20:48:38

回答

0

您可以查詢mysql。*中的各個表並比較帳戶之間的權限字段。當然,你必須考慮主機/用戶字段中的差異,因爲MySQL認爲root @ localhost是一個完全不同於root @%和[email protected]等的帳號。

select * from mysql.TABLE其中User('root','youraccount','someotheraccount');

其中表是「用戶」,「數據庫」,「功能」,等...

+1

這比SHOW GRANTS更容易解析,但是您需要讀取mysql數據庫 - 這可能是也可能不是缺點。 – titanoboa 2010-03-18 10:26:17

0

爲什麼不執行測試行動,將只能由一個「根」超級用戶來完成..如果失敗了,你運氣不好,但是如果它運作正常,你會做生意?