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表中授予的權限適用於表及其列,而在c
olumns_priv表中授予的權限僅適用於表的特定列。
procs_priv表格:包含儲存函數和預存程序的權限。
MySQL利用這些表格來控制MySQL資料庫伺服器的權限。在實現自己的靈活存取控制系統之前,了解這些表非常重要。
以上是MySQL存取控制系統入門的詳細內容。更多資訊請關注PHP中文網其他相關文章!