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

MySQL 網絡訪問控制:權限表結構與安全配置深度解析

     編輯:MySQL 資料庫相關知識

MySQL 安全系統靈活強大,支援多種權限配置方式。雖然 GRANT/REVOKE 是主流操作介面(3.22.11 版前不支援),但深入理解底層授權表結構,能直接操作權限表解決疑難雜症、診斷權限異常。

授權表架構概覽

網絡客戶端訪問權限由 mysql 資料庫中的五張授權表控制,安裝時初始化:

  • user 表:全域帳號與密碼、超級用戶權限(適用於所有資料庫)。
  • db 表:資料庫級權限,限定特定資料庫的操作權限。
  • host 表:主機級權限,配合 db 表實現主機層面的存取控制。
  • tables_priv 表:資料表級權限,精確控制到單一資料表。
  • columns_priv 表:欄位級權限,最細粒度的存取控制。

授權表結構圖1 授權表結構圖2

user 表:全域權限的核心

user 表列出可連線的用戶、密碼雜湊值及全域權限。此處授予的權限屬「超級權限」,跨越所有資料庫。例如在此啟用 DELETE 權限,該用戶即可刪除任意資料表記錄,風險極高。最佳實務:

  • 原則上關閉 user 表所有權限,改用 db、tables_priv 等受限表精確授權。
  • 僅對極少數超級用戶(如 root)開放全域權限。

權限驗證流程

服務器驗證分兩階段:

  1. 連線驗證:檢查 user 表,確認主機、用戶、密碼匹配。
  2. 請求驗證:對每個 SQL 請求,依序檢查 user → db → tables_priv → columns_priv,權限以疊加方式計算,滿足即執行。

理解此機制,即可通過直接操作授權表(INSERT/UPDATE/DELETE)實現精細權限管理,並能有效排查「權限不生效」等疑難問題。

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