mysql -u root
UPDATE mysql.user SET Password=PASSWORD('newpwd') WHERE User='root';
FLUSH PRIVILEGES;
MD5()、SHA1() 或更強雜湊(SHA2()、bcrypt)。nmap -p 3306 db_host 或 telnet db_host 3306 應失敗。%22 %27 等)。mysqli_real_escape_string、Java PreparedStatement、Python cursor.execute() 參數化等。網路傳輸強制 SSL/SSH。tcpdump -l -i eth0 -w - src or dst port 3306 | strings 檢查明文洩露。--skip-symbolic-links 防止表檔案被連結至敏感路徑。chown -R mysql:mysql /var/lib/mysql && chmod 750 /var/lib/mysql)。LOAD DATA INFILE '/etc/passwd' 類攻擊。Host 欄位填 IP,避免 DNS 劫持/詐騙。max_user_connections 防止單一帳號佔滿連線池。GRANT ... WITH MAX_QUERIES_PER_HOUR 1000 MAX_CONNECTIONS_PER_HOUR 50。--local-infile=0 禁用 LOAD DATA LOCAL INFILE。--skip-show-databases 隱藏資料庫列表。--skip-grant-tables 僅限緊急救援,修復後立即 FLUSH PRIVILEGES 重啟權限。# 1. 停止 mysqld,以 skip-grant-tables 啟動
mysqld --skip-grant-tables &
# 2. 免密登入修改密碼
mysql -u root mysql
UPDATE user SET Password=PASSWORD('newpass') WHERE User='root';
FLUSH PRIVILEGES;
# 3. 正常重啟 mysqld
資安非一次性設定,而是持續程序:最小權限、加密傳輸、嚴格稽核、定期演練。將此 23 條納入部署清單與定期審核機制,大幅降低資安風險。