mysql實現了復雜的訪問控制和權限系統,允許您創建用于處理客戶端操作的全面的訪問規則,并有效防止未經授權的客戶端訪問數據庫系統。
1.當客戶端連接到服務器時,mysql訪問控制有兩個階段:
-
連接驗證:連接到MySQL數據庫服務器的客戶端需要有一個有效的用戶名和密碼。此外,客戶端連接的主機必須與MySQL授權表中的主機相匹配。
-
請求驗證:當連接成功建立后,對于客戶端發出的每個語句,MySQL會檢查客戶端是否具有足夠的權限來執行該特定語句。 MySQL能夠檢查數據庫,表和字段級別的權限
2.MySQL安裝程序自動創建一個名為mysql的數據庫。
????? mysql數據庫包含五個主要的授權表。 您可通過GRANT和REVOKE等語句間接操作這些表?
-
user表:包含用戶帳戶和全局權限列。MySQL使用user表來接受或拒絕來自主機的連接。 在user表中授予的權限對MySQL服務器上的所有數據庫都有效。
-
db表:包含數據庫級權限。MySQL使用數據庫表來確定用戶可以訪問哪個數據庫以及哪個主機。在db表中的數據庫級授予的特權適用于數據庫,所有對象屬于該數據庫,例如表,觸發器,視圖,存儲過程等。
-
table_priv和columns_priv表:包含表級和列級權限。 在table_priv表中授予的權限適用于表及其列,而在columns_priv表中授予的權限僅適用于表的特定列。
-
procs_priv表:包含存儲函數和存儲過程的權限。
MySQL利用這些表來控制MySQL數據庫服務器的權限。 在實現自己的靈活訪問控制系統之前,了解這些表非常重要。
推薦:mysql教程