萬盛學電腦網

您现在的位置: 萬盛學電腦網 >> 程式設計 >  >> 資料庫 >> MySQL 教學

MySQL 資料安全防護指南:六大實戰策略防範未授權存取

前言

資料庫往往存放企業核心資產(客戶資料、交易紀錄、知識產權)。除備份機制外,主動防禦未授權存取同樣關鍵。MySQL 內建多項安全功能,善用可大幅降低風險。

六大防護策略

1. 移除授權表中的萬用字元

MySQL 透過 mysql.user、db、tables_priv、columns_priv 等授權表控制存取。避免使用 %、_ 萬用字元授予整庫/整表權限。採用最小權限原則:

  • 逐一審核 SHOW GRANTS FOR 'user'@'host';
  • 撤銷不必要的 GRANT ALL ON *.*。
  • 嚴格限制 SUPER、SHUTDOWN、FILE 等高危權限。

2. 強制使用強式密碼

  • 安裝完成後立即設定 root 密碼(預設為空)。
  • 拒絕弱密碼:生日、帳號名、字典單字。
  • 啟用 validate_password 元件(MySQL 5.6+),強制長度、大小寫、數字、特殊字元。
  • 避免舊版雜湊格式:啟動參數 --secure-auth。

3. 保護配置檔案權限

  • 客戶端選項檔(~/.my.cnf、/etc/my.cnf)以純文字儲存密碼。
  • 權限設為 600,擁有者為對應使用者。
  • 放置於非公開目錄,勿置於 Web 根目錄下。

4. 加密傳輸通道

  • 啟用 MySQL 原生 SSL:require_secure_transport=ON,配置伺服器/客戶端憑證。
  • 或使用 SSH Tunnel / VPN / Stunnel 建立加密通道。
  • 禁止明文傳輸敏感資料(含密碼、個資、金流資訊)。

5. 禁止不必要的遠端存取

  • 若無遠端連線需求,啟動參數加入 --skip-networking,僅允許 Unix Socket 連線。
  • 若需網路連線,綁定回環介面:bind-address=127.0.0.1。
  • 防火牆層面僅開放應用伺服器 IP 存取 3306 埠。

6. 主動稽核與監控

  • 啟用 General Query Log 記錄所有連線與查詢(注意效能影響)。
  • 啟用 Slow Query Log 找出效能問題與異常查詢模式。
  • 部署審計外掛(MariaDB Audit Plugin、MySQL Enterprise Audit)記錄 DDL/DML 操作。
  • 定期分析日誌,建立基準行為模型,異常即時告警。

持續改進

資料庫安全非一次性工作,需納入變更管理、滲透測試、補丁管理週期。參考 CIS MySQL Benchmark、PCI DSS 需求進行定期合規檢查。

copyright © 萬盛學電腦網 all rights reserved