Mysql

MySQL:列出已被授予對給定過程執行權限的使用者

  • August 6, 2019

我想審核我的數據庫以檢查哪些使用者已被授予對哪個過程的個人 EXECUTE 權限。

我想使用此資訊能夠在更改(DROP + CREATE)某些過程的定義時保存GRANT,以便在之後恢復它們。

如何查詢 INFORMATION_SCHEMA 或 MYSQL 模式以檢索該資訊?

更新我對適用於 MySQL 5.6+ 的解決方案感興趣。

為了細粒度的安全性,我們數據集的使用者沒有被授予對整個模式的執行權限,而是對特定儲存過程的權限。架構級權限的答案是無關緊要的。

探勘mysql架構 ( USE mysql; SHOW TABLES;) 我找到了procs_priv包含我需要的資訊的表:

SELECT Routine_type, Routine_name, User, Host
FROM mysql.procs_priv
WHERE Db = DATABASE()
AND Proc_priv = 'Execute';

此腳本執行並顯示與帳戶關聯的所有權限。

SHOW GRANTS FOR 'antonio'@'antonio@gmail.com';

引用自:https://dba.stackexchange.com/questions/244349