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

MySQL 資料庫安全配置全方案:系統內部強化、網絡存取控制、編程防注入與審計追蹤

     編輯:MySQL 資料庫相關知識

MySQL 預設配置為相容性犧牲安全。本文從檔案系統權限、啟動用戶、日誌洩露、授權表初始化、Root 強化、匿名用戶清理、網絡綁定、防火牆、應用層防注入、審計日誌七大維度,構建纵深防禦體系。

一、檔案系統與啟動安全

項目風險加固標準
資料目錄權限本地用戶可打包竊取資料檔chown -R mysql:mysql /var/lib/mysql; chmod -R go-rwx /var/lib/mysql (700)
啟動用戶root 啟動 → SQL 注入獲取 root 權限專用 mysql 用戶啟動,--user=mysql,禁止 --user=root
日誌洩露.bash_history/.mysql_history 記錄帶密碼指令連線不帶 -ppass;ln -s /dev/null ~/.bash_history ~/.mysql_history

二、授權表初始化與 Root 強化

安裝後 mysql.user 狀態:

  • root@localhost / root@host:全權限、空密碼
  • 匿名用戶 @localhost / @host:僅 test/test_% 權限

立即執行:

-- 方法 1:mysqladmin
mysqladmin -u root password 'StrongP@ssw0rd'

-- 方法 2:SET PASSWORD
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('StrongP@ssw0rd');
SET PASSWORD FOR 'root'@'%' = PASSWORD('StrongP@ssw0rd');
FLUSH PRIVILEGES;

-- 方法 3:直接 UPDATE(不推薦新手)
UPDATE mysql.user SET Password=PASSWORD('StrongP@ssw0rd') WHERE User='root';
FLUSH PRIVILEGES;

刪除匿名用戶:DELETE FROM mysql.user WHERE User=''; FLUSH PRIVILEGES;

三、網絡存取控制

  • bind-address=127.0.0.1 僅本地回環(無遠端需求時)
  • 需遠端:防火牆僅放行應用伺服器 IP 段 iptables -A INPUT -s 10.0.0.0/8 -p tcp --dport 3306 -j ACCEPT
  • 啟用 SSL:require_secure_transport=ON,強制加密傳輸
  • 變更預設埠 3306 降低自動掃描噪音

四、最小權限原則應用

-- 應用帳號:僅業務庫增刪改查
GRANT SELECT, INSERT, UPDATE, DELETE ON app_db.* TO 'app_user'@'10.0.0.%' IDENTIFIED BY 'pwd';

-- 備份帳號:僅 SELECT + LOCK TABLES + RELOAD
GRANT SELECT, LOCK TABLES, RELOAD ON *.* TO 'backup_user'@'10.0.0.10' IDENTIFIED BY 'pwd';

-- 監控帳號:僅 PROCESS, REPLICATION CLIENT
GRANT PROCESS, REPLICATION CLIENT ON *.* TO 'monitor_user'@'10.0.0.10' IDENTIFIED BY 'pwd';

五、應用層防 SQL 注入

  • 強制預處理語句:PreparedStatement / mysqli_stmt_prepare / PDO::prepare
  • 嚴禁字串拼接 SQL
  • ORM 確認生成參數化查詢
  • 輸入驗證:白名單驗證、長度限制、型別檢查

六、審計與監控

  • 啟用 General Log(審計)與 Slow Log(效能),log_output=FILE
  • 定期歸檔分析:異常連線、高權限操作、結構變更
  • 企業級可部署 MariaDB Audit Plugin 或 MySQL Enterprise Audit

七、版本與補丁管理

  • 訂閱 Oracle MySQL / MariaDB / Percona 安全公告
  • 關鍵 CVE(如 CVE-2016-6662、CVE-2019-2730) 48 小時內評估修補
  • 測試環境驗證相容性後推送生產

安全是持續過程,而非一次性配置。定期審計、最小權限、加密傳輸、參數化查詢,構建資料資產鋼鐵防線。

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