引言
在處理資料庫時,通常需要能夠建立和刪除使用者。無論是團隊中有多名成員需要訪問資料庫,還是建立和刪除測試使用者以模擬資料庫許可權,瞭解如何新增和刪除資料庫使用者都非常重要。
在這份簡短指南中,我們將介紹在 MySQL 中建立和刪除資料庫使用者的基本知識。這些命令將幫助您開始授予資料庫訪問許可權,併為未來的角色管理奠定基礎。
如何建立 MySQL 使用者?
在 MySQL 中建立使用者是與他人協作以及測試訪問許可權和特權的關鍵。需要注意的是,為了建立使用者,您必須使用具有先決條件中描述的許可權的使用者登入。
基本語法
建立新使用者的基本語法相對簡單。您使用 CREATE USER 命令,然後為新帳戶指定使用者和主機。
CREATE USER '<user>'@'<host>';
這將在建立時建立一個基本帳戶,除了使用者和主機之外,不配置任何其他詳細資訊。
如何建立帶密碼的使用者?
通常,您希望在建立使用者時配置身份驗證。您可以透過在 CREATE USER 語句中新增可選的 IDENTIFIED BY 子句來實現這一點。
CREATE USER '<user>'@'<host>' IDENTIFED BY '<password>';
這會像之前一樣建立一個新的使用者帳戶,並同時為該帳戶分配一個密碼。我們將在稍後介紹如何事後分配密碼或更改使用者密碼。
如何建立具有 Unix 套接字身份驗證的使用者?
雖然密碼身份驗證是大多數使用者最常見的身份驗證方法,但它並非唯一選項。MySQL 提供了許多不同的內部和外部身份驗證機制,您可以配置使用者帳戶來使用它們。作為示例,我們將使用 Unix 套接字身份驗證來配置一個新帳戶。
Unix 套接字身份驗證可用於 Linux 或類 Unix 環境,以便作業系統上的帳戶可以訪問 MySQL 中同名的帳戶,而無需進一步身份驗證。在此配置中,MySQL 管理員知道作業系統上的使用者帳戶受到嚴格控制。
因此,如果作業系統上有一個 mary 使用者,並且 Unix 套接字身份驗證是定義的身份驗證機制,那麼他們將能夠登入到 MySQL 中的 'mary'@'localhost' 帳戶。現在我們來配置它。
套接字身份驗證需要 auth_socket 外掛,因此首先透過輸入以下內容載入外掛:
INSTALL PLUGIN auth_socket SONAME 'auth_socket.so';
接下來,建立一個與您作業系統上的使用者帳戶匹配的使用者帳戶。在本例中,我們將使用上面討論的 mary 帳戶。如果您使用的名稱與您的作業系統名稱不匹配,您將無法使用此使用者進行身份驗證。
要使用套接字身份驗證建立使用者,我們需要使用 IDENTIFIED WITH 子句(與之前使用的 IDENTIFIED BY 子句不同)來指定要使用的身份驗證外掛:
CREATE USER 'mary'@'localhost' IDENTIFIED WITH auth_socket;
現在,您應該能夠從作業系統上的 mary 使用者身份驗證到 MySQL 的 'mary'@'localhost' 使用者。當以 mary 身份登入時,連線到資料庫時無需提供任何使用者名稱或密碼:
mysql
您應該透過您配置的 Unix 套接字身份驗證自動登入。
如何刪除 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 資料庫建立和刪除使用者的基本知識以及一些額外的選項。
