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

MySQL 密碼安全與最小權限實踐:複雜度、輪換、mysql.user 表保護

     編輯:MySQL 資料庫相關知識

密碼複雜度要求

  • ≥ 12 字元,混合大小寫字母、數字、特殊符號(如 !@#$%^&*)。
  • 避免字典詞、個資、鍵盤排列(qwerty、123456)。
  • 建議使用密碼管理器產生/儲存。

定期輪換機制

  • 週期:90 天(高敏感系統 30-60 天)。
  • 輪換流程:產生新密碼 → 更新應用設定 → 驗證連線 → 廢棄舊密碼。
  • 自動化:配合 Vault、Secrets Manager 實現無感輪換。

最小權限授權範本


-- 僅賦予業務必要權限
GRANT SELECT, INSERT, UPDATE, DELETE
ON business_db.*
TO 'app_user'@'app_server_ip'
IDENTIFIED BY 'StrongP@ssw0rd!2024';

-- 禁止授予
-- GRANT ALL PRIVILEGES
-- GRANT FILE, PROCESS, SUPER
-- GRANT SELECT ON mysql.user

mysql.user 表存取權限隔離

  • 該表存放所有帳號雜湊密碼與權限,洩露即全庫淪陷。
  • 僅 root 或專職 DBA 帳號持有 SELECT/UPDATE/INSERT/DELETE ON mysql.user。
  • 應用帳號、開發帳號、監控帳號**嚴禁**擁有此權限。

修改密碼四法(皆需 FLUSH PRIVILEGES)

  1. mysqladmin -u user -h host password "newpwd"
  2. SET PASSWORD FOR 'user'@'host' = PASSWORD('newpwd')
  3. GRANT USAGE ON *.* TO 'user'@'host' IDENTIFIED BY 'newpwd'
  4. 直接更新 mysql.user 表 Password=PASSWORD('newpwd')
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved