MySQL 授權系統採用「記憶體快取 + 分層檢查」架構,理解其生效時機與安全原則,能避免權限配置失效或產生安全漏洞。
| 場景 | 生效方式 |
|---|---|
服務啟動 (mysqld 啟動) | 讀取所有授權表至記憶體,即時生效 |
GRANT/REVOKE/SET PASSWORD | 服務器立即感知,即時生效 |
手動修改授權表 (INSERT/UPDATE/DELETE) | 需執行 FLUSH PRIVILEGES 或 mysqladmin flush-privileges,或重啟服務 |
USE db_name 生效mysql 資料庫寫入權,均可竄改權限導致提權。DELETE FROM user WHERE User='';
DELETE FROM db WHERE User='';
DELETE FROM tables_priv WHERE User='';
DELETE FROM columns_priv WHERE User='';UPDATE user SET Password=PASSWORD('strong_pass') WHERE User='root';
FLUSH PRIVILEGES;user 表:檢查異常 Host、空密碼、過度授權帳號。data 目錄與 mysql 系統庫,無需手動執行 mysql_install_db。my.ini 中的 basedir、datadir。SHOW GRANTS FOR 'user'@'host'; 確認目標權限SELECT Host, User, plugin FROM mysql.user; 檢查認證插件遵循「最小權限、即時生效、定期審計」三原則,構建可控、可審計的 MySQL 權限體系。