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

MySQL 資料庫安全防護全攻略:六大核心措施與持續監控策略

     編輯:MySQL 資料庫相關知識

前言

備份防災相對容易(自動化工具完善),防禦未授權存取才是管理員持續作戰的重點。MySQL 內建多項安全功能,善用可大幅降低風險。

六大核心防護措施

1. 移除授權表通配符

  • mysql.db、mysql.tables_priv 等表中避免 Host='%'、Db='%'、Table_name='%'。
  • 原則:最小權限,每帳號僅授予必要庫/表/欄位權限。
  • 定期執行 SHOW GRANTS FOR 'user'@'host' 審計。

2. 強制安全密碼策略

  • 安裝後立即設定 root 密碼(預設空)。
  • 拒絕生日、帳號名、字典單字等弱密碼。
  • 啟動選項 --secure-auth 禁用舊版 16 位雜湊密碼格式。
  • MySQL 5.6+ 內建 validate_password 外掛強制長度、大小寫、數字、特殊字元。

3. 保護配置檔權限

  • .my.cnf 含明文密碼,權限設 600,放置於使用者家目錄(非公開目錄)。
  • 系統層 /etc/my.cnf 僅 root 可寫。

4. 加密傳輸通道

  • 啟用 SSL:mysqld --ssl-ca=... --ssl-cert=... --ssl-key=...。
  • 或 SSH 隧道(參考 ID 90907),不修改 MySQL 設定即可加密。
  • 強制客戶端 SSL:GRANT ... REQUIRE SSL。

5. 禁止遠程 TCP 存取(若不需要)

  • 啟動參數 --skip-networking 僅保留 Unix Socket。
  • 或 bind-address=127.0.0.1 限制回環介面。
  • 防火牆層面再封鎖 3306 埠對外。

6. 主動監控存取日誌

  • 啟用 General Query Log:--general-log --general-log-file=/var/log/mysql/query.log。
  • 關鍵審計點:異常時間登入、大量失敗嘗試、敏感表 SELECT *、DROP/TRUNCATE 操作。
  • 配合 logrotate、ELK/Splunk 集中分析、告警。

持續安全清單

  1. 定期 mysql_secure_installation 掃描弱點。
  2. 升級修補 CVE(關注 Oracle Critical Patch Update)。
  3. 帳號生命週期管理:離職即撤銷、定期輪換密碼。
  4. 資料庫防火牆(如 MariaDB MaxScale、ProxySQL)攔截異常 SQL。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved