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

MySQL 資料庫安全防護六大核心措施

     編輯:MySQL 資料庫相關知識

前言

企業核心資產多儲存於資料庫,除備份機制應對軟硬體故障外,防範未授權存取更需主動配置。MySQL 提供多項內建安全功能,善用可大幅降低風險。

六大防護措施

1. 移除授權表中的通配符

MySQL 透過授權表控制存取權限。避免使用 % 等通配符授予過寬權限,特別是 SUPER、GRANT 等高危權限。定期執行 SHOW GRANTS FOR 'user'@'host'; 審查權限設定。

2. 強制使用強密碼

  • 安裝後立即設定 root 密碼(預設為空)
  • 所有帳號必須設定密碼,禁止使用生日、姓名、字典單字等弱密碼
  • 啟用 --secure-auth 選項,拒絕舊版不安全密碼格式

3. 保護配置檔案權限

用戶常將密碼存於 ~/.my.cnf 等選項檔。確保:

  • 檔案權限設為 0600(僅擁有者讀寫)
  • 存放於非公開目錄(如用戶家目錄)
  • 避免將密碼寫在腳本或版本控制系統中

4. 加密客戶端與伺服器通訊

預設傳輸為明文,易遭竊聽。兩種加密方案:

  • SSL/TLS:在 my.cnf 配置 ssl-ca、ssl-cert、ssl-key,並要求客戶端使用 --ssl-mode=REQUIRED
  • SSH 隧道:ssh -L 3306:localhost:3306 user@db-server,將本地 3306 映射到遠端資料庫

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

  • 啟動參數加入 --skip-networking,僅允許本地 Unix socket 連線
  • 或在 my.cnf 設定 bind-address = 127.0.0.1,僅監聽本地介面
  • 防火牆層面僅開放受信任 IP 存取 3306 埠

6. 持續監控存取日誌

  • 啟用一般查詢日誌:general_log = 1,記錄所有連線與查詢
  • 定期審查 hostname.log,關注異常時間、異常 IP、高頻失敗登入
  • 結合 audit_log 外掛實現更精細的審計

持續安全觀念

資料庫安全非一次性工作,需建立:

  1. 定期權限審查機制
  2. 密碼輪換政策
  3. 安全補丁及時套用流程
  4. 異常行為告警與應變預案

「防患於未然」,將安全配置內化為日常運維標準,才能真正守護資料資產。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved