首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫

MySQL 安全加固指南:密碼傳輸、網路加密、最小權限與檔案系統防護

     編輯:MySQL 資料庫相關知識

MySQL 連線密碼不以明文傳輸,但其餘資料為明文。本文提供從連線加密、帳號管理、服務器運行身分、檔案權限、DNS 信任等層面的系統性加固建議。

核心加固清單

  1. 全帳號強制密碼:空密碼帳號允許任意用戶名登入。安裝後立即修改 root 密碼:
    UPDATE user SET Password=PASSWORD('new_pass') WHERE user='root'; FLUSH PRIVILEGES;
  2. 禁止 root 身分運行 mysqld:建立專用 mysql 系統帳號,以該身分啟動服務。mysql.server 腳本可用 su 切換身分。
  3. 保護啟動腳本:若腳本含 root 密碼,權限設為 600 (僅 root 可讀)。
  4. 資料目錄權限隔離:僅運行 mysqld 的系統帳號擁有資料目錄讀寫權。
  5. 收回 PROCESS 權限:mysqladmin processlist 顯示當前 SQL 文本,含敏感操作 (如修改密碼)。保留一額外連線給 root 緊急管理。
  6. 收回 FILE 權限:SELECT ... INTO OUTFILE 可寫檔案;LOAD DATA INFILE 可讀任意檔 (如 /etc/passwd)。
  7. 授權表用 IP 代替主機名:不信任 DNS 時,避免主機名解析欺騙;謹慎使用萬用字元主機名 (如 %.example.com)。
  8. 啟用壓縮協議 / SSH 隧道:MySQL 3.22+ 支援壓縮協議增加逆向難度;生產環境建議 SSH 隧道加密 TCP 連線。

進階建議

  • 定期審核 user/db/tables_priv 權限表,移除過期帳號。
  • 啟用二進位日誌 (Binlog) 進行審計與時間點恢復。
  • 考慮使用 --secure-auth 拒絕舊式密碼雜湊認證。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved