在本教學中,我們將向您介紹MySQL訪問控制系統和MySQL中各種與許可權相關的表。
MySQL實現了複雜的訪問控制和許可權系統,允許您創建用於處理客戶端操作的全面的訪問規則,並有效防止未經授權的客戶端訪問資料庫系統。
當客戶端連接到伺服器時,MySQL訪問控制有兩個階段:
- 連接驗證:連接到MySQL資料庫伺服器的客戶端需要有一個有效的用戶名和密碼。此外,客戶端連接的主機必須與MySQL授權表中的主機相匹配。
- 請求驗證:當連接成功建立後,對於客戶端發出的每個語句,MySQL會檢查客戶端是否具有足夠的許可權來執行該特定語句。 MySQL能夠檢查資料庫,表和字段級別的許可權。
MySQL安裝程式自動創建一個名為mysql
的資料庫。 mysql
資料庫包含五個主要的授權表。 您可通過GRANT和REVOKE等語句間接操作這些表 -
user
表:包含用戶帳戶和全局許可權列。MySQL使用user
表來接受或拒絕來自主機的連接。 在user
表中授予的許可權對MySQL伺服器上的所有資料庫都有效。db
表:包含資料庫級許可權。MySQL使用資料庫表來確定用戶可以訪問哪個資料庫以及哪個主機。在db
表中的資料庫級授予的特權適用於資料庫,所有對象屬於該資料庫,例如表,觸發器,視圖,存儲過程等。table_priv
和columns_priv
表:包含表級和列級許可權。 在table_priv
表中授予的許可權適用於表及其列,而在columns_priv
表中授予的許可權僅適用於表的特定列。
MySQL利用這些表來控制MySQL資料庫伺服器的許可權。 在實現自己的靈活訪問控制系統之前,瞭解這些表非常重要。
在本教學中,您已經瞭解了MySQL訪問控制系統的工作原理,並探索了MySQL中的授權表。