首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫

MySQL 授權機制原理深度解析:生效時機、安全原則與初始化最佳實踐

     編輯:MySQL 資料庫相關知識

MySQL 授權系統採用「記憶體快取 + 分層檢查」架構,理解其生效時機與安全原則,能避免權限配置失效或產生安全漏洞。

授權表生效時機

場景生效方式
服務啟動 (mysqld 啟動)讀取所有授權表至記憶體,即時生效
GRANT/REVOKE/SET PASSWORD服務器立即感知,即時生效
手動修改授權表 (INSERT/UPDATE/DELETE)需執行 FLUSH PRIVILEGES 或 mysqladmin flush-privileges,或重啟服務

對現有連線的影響

  • 表/欄權限:下一請求生效
  • 資料庫權限:下一 USE db_name 生效
  • 全域權限/密碼變更:下一次重新連線生效

核心安全原則

  1. 僅 root 擁有授權表寫入權:任何其他用戶若具備 mysql 資料庫寫入權,均可竄改權限導致提權。
  2. 清理匿名用戶:初始化後立即執行
    DELETE FROM user WHERE User='';
    DELETE FROM db WHERE User='';
    DELETE FROM tables_priv WHERE User='';
    DELETE FROM columns_priv WHERE User='';
  3. 立即設定 root 密碼:
    UPDATE user SET Password=PASSWORD('strong_pass') WHERE User='root';
    FLUSH PRIVILEGES;
  4. 所有帳號強制設密碼:無密碼帳號等同公開入口。
  5. 避免使用 '%' 萬用主機:除非必要,否則限制具體 IP/網段。
  6. 定期審計 user 表:檢查異常 Host、空密碼、過度授權帳號。

Windows 安裝特殊說明

  • Windows 安裝程式會自動初始化 data 目錄與 mysql 系統庫,無需手動執行 mysql_install_db。
  • 若需自定義安裝路徑,請修改 my.ini 中的 basedir、datadir。

權限修改後的驗證清單

  1. SHOW GRANTS FOR 'user'@'host'; 確認目標權限
  2. SELECT Host, User, plugin FROM mysql.user; 檢查認證插件
  3. 實際以該帳號登入測試業務 SQL
  4. 嘗試越權操作,確認被正確拒絕

遵循「最小權限、即時生效、定期審計」三原則,構建可控、可審計的 MySQL 權限體系。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved