當帳號擁有 WITH GRANT OPTION 時,可將自身擁有的權限授予其他帳號,形成權限鏈:
-- host 帳號擁有 UPDATE, DELETE 權限並帶 GRANT OPTION
GRANT DELETE, UPDATE ON *.* TO 'admin2'@'localhost' IDENTIFIED BY '' WITH GRANT OPTION;
執行後,admin2 同樣擁有 DELETE, UPDATE 且可進一步轉授。
root (ALL PRIVILEGES + GRANT OPTION)
└── grant → dba_user (SELECT, INSERT, UPDATE + GRANT OPTION)
└── grant → dev_user (SELECT, INSERT)
└── grant → readonly_user (SELECT) -- dev_user 無 GRANT OPTION,鏈路終止
WITH GRANT OPTION 授予對象,僅限核心 DBA。REVOKE 僅移除直接授予的權限,不會級聯回收下游帳號權限。mysql.user、mysql.db 異常授權。audit_log 記錄所有 GRANT/REVOKE 操作。WITH GRANT OPTION,確有跨部門授權需求時,走變更流程、限時、事後回收。CREATE ROLE,建立角色統一授權,帳號僅 GRANT role TO user,避免直接操作細粒度權限。SELECT * FROM mysql.user WHERE Grant_priv = 'Y'; 產出報表。