mysql.user、db、tables_priv、columns_priv 中的 Host、Db、Table_name、Column_name 是否含 %、_。SHOW GRANTS FOR 'user'@'%'; 逐帳號審查。SUPER、FILE、PROCESS、SHUTDOWN、RELOAD)僅限管理帳號。validate_password 元件(MySQL 5.6+)強制複雜度:INSTALL COMPONENT 'file://component_validate_password';
SET GLOBAL validate_password.length = 12;
SET GLOBAL validate_password.mixed_case_count = 1;
SET GLOBAL validate_password.number_count = 1;
SET GLOBAL validate_password.special_char_count = 1;
SET GLOBAL validate_password.policy = STRONG;
--secure-auth(預設開啟)拒絕 pre-4.1 密碼格式。~/.my.cnf、/etc/mysql/conf.d/*.cnf)權限 chmod 600,擁有者為對應使用者。my.cnf 設定 ssl-ca、ssl-cert、ssl-key,require_secure_transport=ON。ssh -L 3307:localhost:3306 user@db_host,應用連線 127.0.0.1:3307。SHOW STATUS LIKE 'Ssl_cipher'; 應顯示加密套件而非空值。bind-address = 127.0.0.1 或 --skip-networking(僅 Unix Socket)。nmap -p 3306 db_host 應顯示 filtered 或 closed。general_log=1、general_log_file=/var/log/mysql/query.log。MariaDB Audit Plugin / McAfee MySQL Audit,記錄:連線/斷線、DDL/DML、失敗登入、權限變更。六大防線層層疊加:授權最小化 → 強密碼 → 設定檔保護 → 傳輸加密 → 網路隔離 → 持續稽核。缺一不可。建立季度審核機制,納入變更管理流程,確保新帳號、新應用、架構變更皆通過安全檢核才上線。