nmap -p 3306 / telnet host 3306 驗證)。mysql.user 表,密碼雜湊一旦洩露等同帳號失竊。GRANT/REVOKE 精細控制。MD5()/SHA1() 雜湊儲存(注意:MySQL 內部已用雜湊,應用層勿再雜湊)。SET PASSWORD FOR 'user'@'host' = PASSWORD('newpwd'); FLUSH PRIVILEGES;mysqli_real_escape_string, PDO::quote 等)。%22、單引號 %27、井號 %23 等預編碼。--skip-symbolic-links 防止任意檔案讀取。chown -R mysql:mysql /var/lib/mysql; chmod 700 /var/lib/mysql)。PROCESS/SUPER 僅授 DBA,防止查看敏感 SQL、修改全域變數、控制複制。FILE 僅授管理員,防 LOAD DATA INFILE '/etc/passwd' 讀取系統檔。mysql.user 僅填 IP 地址。max_user_connections 變數或 GRANT ... WITH MAX_CONNECTIONS_PER_HOUR。GRANT 支援 MAX_QUERIES_PER_HOUR, MAX_UPDATES_PER_HOUR 等配額。--local-infile=0: 禁用 LOAD DATA LOCAL 防止客戶端讀取本地檔案上傳。--skip-grant-tables 僅限緊急救援: 繞過權限檢查,用畢即執行 mysqladmin flush-privileges 恢復驗證。--skip-show-databases: 隱藏資料庫列表,降低資訊洩露面。# 1. 停止服務,以跳過授權啟動
mysqld --skip-grant-tables &
# 2. 免密登入修改
mysql -u root mysql
UPDATE user SET Password=PASSWORD('newpass') WHERE User='root';
FLUSH PRIVILEGES;
# 3. 正常重啟服務
安全非一次性配置,而是持續過程:最小權限、加密傳輸、參數化查詢、審計日誌、定期演練 五大支柱缺一不可。