MySQL刪除用戶( DROP USER)

在本教學中,您將學習如何使用MySQL DROP USER語句來刪除用戶帳戶。

MySQL DROP USER語句介紹

要刪除一個或多個用戶帳戶,請按如下所示使用DROP USER語句:

DROP USER user, [user],...;

要刪除用戶,可以在DROP USER子句之後的'user_name'@'host_name'格式中指定帳戶名稱。如果要一次刪除多個用戶,請使用以逗號分隔的用戶列表。

如果刪除不存在的用戶帳戶,MySQL將發出錯誤。 從MySQL 5.7.8開始,可以使用IF EXISTS子句來指示該語句在刪除不存在的用戶帳戶時發出警告,而不是發出錯誤。

DROP USER [IF EXISTS] user, [user],...;

除了刪除用戶帳戶之外,DROP USER語句還會從所有授權表中刪除所有權限。

刪除用戶帳戶示例

要查看MySQL伺服器中的資料庫:mysql的所有用戶資訊,請使用以下SELECT語句:

USE mysql;
SELECT user, host FROM mysql.user;

下麵是我在編寫本教學時所使用MySQL資料庫中的用戶帳號列表:

mysql> SELECT user, host FROM mysql.user;
+---------------+-----------+
| user          | host      |
+---------------+-----------+
| api@localhost | %         |
| remote_user   | %         |
| rfc           | %         |
| superadmin    | %         |
| auditor       | localhost |
| dbadmin       | localhost |
| mysql.sys     | localhost |
| root          | localhost |
| super         | localhost |
+---------------+-----------+
9 rows in set

假設您要刪除用戶帳戶:api@localhost,請使用以下語句:

DROP USER 'api@localhost';

再次從mysql.user表中查詢數據,您將看到用戶api@localhost已被刪除。

資料庫中的mysql.user表的用戶帳號列表如下所示:

mysql> SELECT user, host FROM mysql.user;
+-------------+-----------+
| user        | host      |
+-------------+-----------+
| remote_user | %         |
| rfc         | %         |
| superadmin  | %         |
| auditor     | localhost |
| dbadmin     | localhost |
| mysql.sys   | localhost |
| root        | localhost |
| super       | localhost |
+-------------+-----------+
8 rows in set

要刪除單個DROP USER語句中兩個用戶:remote_userauditor的帳戶,請使用以下語句:

DROP USER remote_user, auditor;

下麵可驗證刪除操作的結果,再次查詢mysql.user表中的用戶資訊 -

SELECT user, host FROM mysql.user;

假設用戶帳戶已登錄,並且正在運行會話。 如果您刪除用戶帳戶,則不會停止打開的會話。 活動會話將繼續,直到用戶退出。通常,在這種情況下,您應該在執行DROP USER語句之前立即關閉用戶的會話。

首先,需要使用SHOW PROCESSLIST語句識別用戶的進程標識。

如您所見,dbadmin@localhost用戶帳戶的進程號為:40

第二,通過殺死這個進程 -

KILL 40;

用戶帳戶dbadmin@localhost收到一條錯誤消息:

ERROR 2013 (HY000): Lost connection to MySQL server during query

第三,執行DROP USER語句刪除用戶帳戶dbadmin@localhost

DROP USER dbadmin@localhost;

請注意,如果不終止活動會話,則刪除的用戶(如果連接到資料庫伺服器)仍然可以執行所有操作,直到會話結束。

在本教學中,您已經學會了如何使用MySQL DROP USER語句來刪除一個或多個用戶帳戶。


上一篇: MySQL管理 下一篇: MySQL全文搜索