萬盛學電腦網

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

MySQL 數據庫安全解決方案全景:賬號體系、三層驗證、權限矩陣、網絡傳輸加密

一、賬號體系:用戶名 + 密碼 + 來源位置 三元組

MySQL 賬號唯一標識為 'user'@'host'。同用戶名不同來源可擁有完全不同權限與密碼:


GRANT SELECT ON db1.* TO 'abc'@'server1' IDENTIFIED BY 'pass1';
GRANT SELECT ON db2.* TO 'abc'@'server2' IDENTIFIED BY 'pass2';

實現「同賬號、分庫、分密碼、分權限」的精細隔離。

二、授權表底層存儲

權限信息存儲於 mysql 庫的 MyISAM 表:user、db、tables_priv、columns_priv、procs_priv、proxies_priv。可用標準 SQL 查詢、修改、審計。

三、三層安全檢查機制

  1. 連接驗證 (Authentication):校驗 用戶名/密碼/來源主機 是否匹配 user 表記錄。失敗即拒絕連接。
  2. 權限授權 (Authorization):連接成功後,根據 user、db、tables_priv 等表判斷全局/庫/表/列/程序級權限。
  3. 訪問控制 (Access Control):具體操作 (SELECT/INSERT/UPDATE/DELETE/EXECUTE 等) 是否被允許,布爾判斷。

四、核心權限矩陣 (關鍵權限解析)

權限作用範圍風險等級建議授予對象
SELECT表/列低所有業務讀賬號
INSERT/UPDATE/DELETE表中業務寫賬號
INDEX表中DBA/遷移工具
ALTER/CREATE/DROP庫/表/索引高DBA/發布系統
GRANT全局極高極少數超管
REFERENCES表/列中需外鍵的應用
RELOAD服務器高監控/備份工具
SHUTDOWN服務器極高僅 root/自動化運維
PROCESS服務器高DBA/監控系統 (可見慢查詢、改密SQL)
FILE文件系統極高**嚴禁業務賬號** (可讀 /etc/passwd、寫 webshell)

五、全局操作權限

  • RELOAD:執行 FLUSH TABLES/PRIVILEGES/LOGS 等。
  • SHUTDOWN:執行 mysqladmin shutdown 關閉實例。
  • PROCESS:SHOW PROCESSLIST、KILL 線程。
  • SUPER:CHANGE MASTER TO、KILL 所有線程、SET GLOBAL 變量、啟用/禁用復制、安裝插件。
  • REPLICATION SLAVE/CLIENT:復制拓撲管理。

六、網絡傳輸安全

  • 密碼傳輸加密 (挑戰-響應機制),但**數據流明文**。
  • 生產環境**必須啟用 SSL/TLS** 或 **SSH 隧道**:
    require_secure_transport=ON 強制加密連接。
    應用連接字符串添加 useSSL=true&verifyServerCertificate=false (或配置 CA 驗證)。
  • 同機部署啟用 skip-networking,僅 Unix Socket 通信。

七、總結:纵深防禦檢查清單

  1. 所有賬號強密碼、無匿名用戶、root 僅本地。
  2. 業務賬號最小權限、綁定具體 IP、無高危權限 (FILE/SHUTDOWN/SUPER)。
  3. 數據目錄權限 700、屬主 mysql、日誌文件 600。
  4. 啟用 SSL/TLS、skip-name-resolve、bind-address 內網 IP。
  5. 審計日誌記錄 DDL/DCL/登入失敗,定期複查。
  6. 備份加密存儲、異地災備、定期演練恢復。
copyright © 萬盛學電腦網 all rights reserved