MySQL存取控制系統入門

2019-10-16 22:55:38

在本教學中,我們將向您介紹MySQL存取控制系統和MySQL中各種與許可權相關的表。

MySQL實現了複雜的存取控制和許可權系統,允許您建立用於處理用戶端操作的全面的存取規則,並有效防止未經授權的用戶端存取資料庫系統。

當用戶端連線到伺服器時,MySQL存取控制有兩個階段:

  • 連線驗證:連線到MySQL資料庫伺服器的用戶端需要有一個有效的使用者名和密碼。此外,用戶端連線的主機必須與MySQL授權表中的主機相匹配。
  • 請求驗證:當連線成功建立後,對於用戶端發出的每個語句,MySQL會檢查用戶端是否具有足夠的許可權來執行該特定語句。 MySQL能夠檢查資料庫,表和欄位級別的許可權。

MySQL安裝程式自動建立一個名為mysql的資料庫。 mysql資料庫包含五個主要的授權表。 您可通過GRANTREVOKE等語句間接操作這些表 -

  • user表:包含使用者帳戶和全域性許可權列。MySQL使用user表來接受或拒絕來自主機的連線。 在user表中授予的許可權對MySQL伺服器上的所有資料庫都有效。

  • db表:包含資料庫級許可權。MySQL使用資料庫表來確定使用者可以存取哪個資料庫以及哪個主機。在db表中的資料庫級授予的特權適用於資料庫,所有物件屬於該資料庫,例如表,觸發器檢視儲存過程等。

  • table_privcolumns_priv表:包含表級和列級許可權。 在table_priv表中授予的許可權適用於表及其列,而在columns_priv表中授予的許可權僅適用於表的特定列。

  • procs_priv表:包含儲存函式儲存過程的許可權。

MySQL利用這些表來控制MySQL資料庫伺服器的許可權。 在實現自己的靈活存取控制系統之前,了解這些表非常重要。

在本教學中,您已經了解了MySQL存取控制系統的工作原理,並探索了MySQL中的授權表。