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

MySQL 網路安全核心措施:帳號體系、權限模型與存取控制

     編輯:MySQL 資料庫相關知識

一、帳號安全:三元組識別模型

MySQL 帳號 = 用戶名 + 密碼 + 來源位置。同一用戶從不同來源連線,權限可完全不同。

實戰範例:庫級密碼隔離

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

用戶 abc 連 db1 用 pass1,連 db2 用 pass2,實現同帳號不同庫不同密碼。

二、三層安全檢查機制

  1. 登入驗證:匹配 mysql.user 表(用戶名/密碼/Host)
  2. 授權檢查:登入後依 mysql.db、mysql.tables_priv、mysql.columns_priv 判斷庫/表/欄位權限
  3. 存取控制:具體操作權限(布林值:允許/拒絕)

三、12 類核心操作權限

權限功能風險
SELECT查詢資料低
INSERT新增資料中
UPDATE修改資料中
INDEX管理索引中
ALTER修改表結構高
CREATE建立庫/表高
GRANT授權他人極高
REFERENCES外鍵約束中
RELOADFLUSH 操作高
SHUTDOWN關閉服務極高
PROCESS查看/殺死進程高
FILELOAD DATA INFILE極高

四、全域管理權限(極高風險)

  • SUPER:殺死任意查詢、修改全域變數、CHANGE MASTER、PURGE BINLOG
  • FILE:讀寫伺服器任意檔案(LOAD DATA INFILE/SELECT ... INTO OUTFILE)
  • SHUTDOWN:mysqladmin shutdown
  • GRANT:將自己權限轉授他人
生產環境嚴格控制上述四大權限,僅授予 DBA 核心帳號。

五、安全加固實戰清單

  • ✅ 刪除匿名用戶:DELETE FROM mysql.user WHERE User='';
  • ✅ Root 僅本地:RENAME USER 'root'@'%' TO 'root'@'localhost';
  • ✅ 移除 test 庫:DROP DATABASE test; DELETE FROM mysql.db WHERE Db LIKE 'test%';
  • ✅ 強制 SSL:GRANT ... REQUIRE SSL;
  • ✅ 綁定內網 IP:bind-address=10.0.0.10
  • ✅ 定期 SHOW GRANTS 審核權限
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved