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

強化 MySQL 安全性的七大核心建議

     編輯:MySQL 資料庫相關知識

在連接 MySQL 伺服器時,密碼雖會加密傳輸,但其他資料預設仍以明文形式傳送,存在被攔截風險。為提升安全性,可採用壓縮協議(MySQL 3.22+)或部署 SSH 建立加密的 TCP/IP 連線。以下整理七項關鍵防護措施,助您構建更堅固的資料庫防線。

1. 為所有帳號設定強制密碼

未設密碼的帳號允許任意用戶以 mysql --user other_user database 方式存取。安裝完成後執行 mysql_secure_installation 即可檢測並修正此問題。

2. 初始化授權表並修改 root 密碼

透過 mysql_install_db 建立授權表,隨後以 root 登入更新密碼:

shell> mysql -u root mysql
mysql> UPDATE user SET Password=PASSWORD('new_password') WHERE user='root';
mysql> FLUSH PRIVILEGES;

3. 禁止以 root 身分啟動 MySQL 服務

建立專屬低權限系統用戶(如 mysql)運行服務。MySQL 內部用戶體系與作業系統用戶獨立,此舉不影響功能,卻能限縮潛在入侵影響範圍。

4. 保護啟動腳本與資料目錄權限

若 mysql.server 腳本包含 root 密碼,務必將其權限設為 600 僅 root 可讀。同時確認資料目錄擁有者為運行 mysqld 的用戶,並移除其他讀寫權限。

5. 嚴格控制 PROCESS 權限

mysqladmin processlist 會顯示正在執行的完整查詢語句(含修改密碼的 SQL)。僅授予必要管理帳號,並利用 MySQL 為 PROCESS 權限保留的額外連線槽進行監控。

6. 禁止授予 FILE 權限

擁有 FILE 權限的用戶可讀寫伺服器檔案系統(如 /etc/passwd),並透過 LOAD DATA 導入資料表再以 SELECT 讀取,極易造成敏感資訊洩露。

7. 優先使用 IP 位址而非主機名

若 DNS 不可信,授權表中應直接使用 IP。嚴禁使用含通配符(%)的主機名,防止反向解析詐騙導致授權繞過。

落實上述設定後,MySQL 主機將具備較完善的基線防護,大幅降低被輕易攻破的風險。建議定期複核權限配置,並結合防火牆、審計日誌構建纵深防御體系。

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