Mysql
MySQL:列出已被授予對給定過程執行權限的使用者
我想審核我的數據庫以檢查哪些使用者已被授予對哪個過程的個人 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';