密碼複雜度要求
- ≥ 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)
mysqladmin -u user -h host password "newpwd"
SET PASSWORD FOR 'user'@'host' = PASSWORD('newpwd')
GRANT USAGE ON *.* TO 'user'@'host' IDENTIFIED BY 'newpwd'
- 直接更新
mysql.user 表 Password=PASSWORD('newpwd')