簡介
通常,在使用資料庫時,您需要能夠建立和刪除使用者。無論是在需要多位成員存取資料庫的團隊中工作,還是建立和刪除測試使用者以模擬資料庫權限,了解如何新增和移除資料庫使用者都非常重要。
在本簡短指南中,我們將介紹在 MySQL 中建立和刪除資料庫使用者的基本知識。這些指令將讓您準備好開始授予資料庫存取權限,並為未來角色管理奠定基礎。
如何建立 MySQL 使用者?
在 MySQL 中建立使用者是用於與他人協作以及測試存取權和權限的關鍵。務必注意,為了建立使用者,您必須使用具有先決條件中所述權限的使用者登入。
基本語法
建立新使用者的基本語法相對簡單。您可以使用 CREATE USER 指令,然後指定新帳戶的使用者和主機
CREATE USER '<user>'@'<host>';
這將建立一個基本帳戶,而無需在建立時配置使用者和主機以外的任何詳細資訊。
如何建立具有密碼的使用者?
通常,您希望在建立使用者時配置身分驗證。您可以透過將選用的 IDENTIFIED BY
子句新增到 CREATE USER
陳述式來執行此操作
CREATE USER '<user>'@'<host>' IDENTIFED BY '<password>';
這會像之前一樣建立新的使用者帳戶,並同時為該帳戶指派密碼。我們將介紹如何在事後指派密碼,或稍後如何變更使用者的密碼。
如何建立具有 Unix socket 身分驗證的使用者?
雖然密碼身分驗證是大多數使用者最常見的身分驗證方法,但它並非唯一的選擇。MySQL 提供了許多不同的內部和外部身分驗證機制,您可以配置使用者帳戶以使用這些機制。作為範例,我們將使用 Unix socket 身分驗證來配置新帳戶。
Unix socket 身分驗證可用於 Linux 或類 Unix 環境中,以便作業系統上的帳戶可以存取 MySQL 內相同的帳戶名稱,而無需進一步的身分驗證。在此配置中,MySQL 管理員知道作業系統上的使用者帳戶受到嚴格控制。
因此,如果作業系統上有 mary
使用者,則如果 Unix socket 身分驗證是定義的身分驗證機制,他們將能夠登入 MySQL 內的 'mary'@'localhost'
帳戶。現在讓我們配置這個。
Socket 身分驗證需要 auth_socket
外掛程式,因此首先輸入以下內容來載入外掛程式
INSTALL PLUGIN auth_socket SONAME 'auth_socket.so';
接下來,建立一個使用者帳戶,使其與您作業系統上的使用者帳戶相符。在此範例中,我們將使用上面討論的 mary
帳戶。如果您不使用與您的作業系統名稱之一相符的名稱,您將無法使用此使用者進行身分驗證。
若要建立具有 socket 身分驗證的使用者,我們需要使用 IDENTIFIED WITH
子句(與先前使用的 IDENTIFIED BY
子句不同)來指定要使用的身分驗證外掛程式
CREATE USER 'mary'@'localhost' IDENTIFIED WITH auth_socket;
現在,您應該能夠從作業系統上的 mary
使用者身分驗證到 'mary'@'localhost'
MySQL 使用者。以 mary
身分登入時,連線到資料庫,無需提供任何使用者名稱或密碼
mysql
您應該會透過您配置的 Unix socket 身分驗證自動登入。
如何刪除 MySQL 使用者?
保留不再有用途的使用者帳戶是一種安全風險。您可以使用 DROP USER
指令輕鬆移除帳戶。
基本語法如下所示
DROP USER '<user>'@'<host>';
因此,若要刪除 'mary'@'localhost' 使用者,您將輸入
DROP USER 'mary'@'localhost';
如果您嘗試刪除不存在的使用者,您將收到錯誤
ERROR 1396 (HY000): Operation DROP USER failed for 'mary'@'localhost'
為了避免這種情況,您可以在帳戶名稱之前新增 IF EXISTS 子句。如果使用者存在,則會將其刪除。如果不存在,則只會發出警告
Query OK, 0 rows affected, 1 warning (0.00 sec)
結論
在本快速指南中,我們介紹了 MySQL 資料庫建立和刪除使用者的基本知識,以及一些其他選項。