MySQL 官方提煉的 23 條安全準則,構建起從網絡傳輸、認證授權、審計監控到應用層防注入的立體防護體系。本文按防護層次重新編組,並補充現代最佳實踐。
nmap -p 3306/telnet host 3306 驗證)。數據庫置於 DMZ 或防火牆後方。SHA2()/PBKDF2 存儲(舊版 MD5()/SHA1()),拒絕字典弱密碼,定期輪換。GRANT SELECT,INSERT ON db.* TO app@host),禁用 GRANT ALL。PROCESS/SUPER/FILE/SHUTDOWN 僅限管理員,防止 LOAD DATA INFILE '/etc/passwd' 類攻擊。max_user_connections 防單賬號耗盡連接資源。GRANT 支持 MAX_QUERIES_PER_HOUR 等資源控制選項。'')、動態 URL 編碼(%22/%27),長度校驗,類型白名單校驗。chown -R mysql:mysql /var/lib/mysql、chmod 750)。--skip-symbolic-links 防止目錄遍歷攻擊。tcpdump -i eth0 port 3306 | strings 檢測明文傳輸,定期審計 general_log/audit_log。--local-infile=0 禁用客戶端 LOAD DATA LOCAL--skip-show-databases 隱藏庫列表--skip-grant-tables 僅限緊急救援使用,修復後立即 FLUSH PRIVILEGES 恢復授權遇到 ERROR 1045 Access denied for root:
mysqld --skip-grant-tables & 跳過授權啟動mysql -u root mysql 免密登錄UPDATE user SET authentication_string=PASSWORD('newpass') WHERE user='root'; FLUSH PRIVILEGES;caching_sha2_password 插件替代 mysql_native_passwordrequire_secure_transport=ON 強制 SSLMySQL Enterprise Audit 或開源 MariaDB Audit PluginProxySQL 規則攔截)mysql_secure_installation 基線檢查