首页 > 编程笔记 > MySQL笔记 阅读:16

MySQL删除用户的2种方式(附带实例)

MySQL 数据库中,可以使用 DROP USER 语句删除用户,也可以直接通过 DELETE 从 mysql.user 表中删除对应的记录来删除用户。

使用DROP USER语句删除用户

DROP USER 语句的语法如下:
DROP USER user [, user];
DROP USER 语句用于删除一个或多个 MySQL 账户。要使用 DROP USER,必须拥有 MySQL 数据库的全局 CREATE USER 权限或 DELETE 权限。使用与 GRANT 或 REVOKE 相同的格式为每个账户命名。

例如,“'jeffrey'@'localhost'”账户名称的用户和主机部分与用户表记录的 User 和 Host 列值相对应。

使用 DROP USER,可以删除一个用户账户及其权限,操作如下:
DROP USER 'user'@'localhost';
?DROP USER;

【实例】使用 DROP USER 删除账户“'jeffrey'@'localhost'”,DROP USER 语句如下:
DROP USER 'jeffrey'@'localhost';
执行过程如下:
MySQL> DROP USER 'jeffrey'@'localhost';
Query OK, 0 rows affected (0.00 sec)
可以看到语句执行成功,查看执行结果:
MySQL> SELECT host,user, authentication_string FROM user ;
+---------+----------------+---------------------------------------------+
| host    | user           |authentication_string                        |
+---------+----------------+---------------------------------------------+
|localhost|mysql.infoschema|$A$005$THISISACOMBINATIONOFIVALIDSALTANDP    |
|localhost|mysql.session   |$A$005$THISISACOMBINATIONOFINVALIDSALTANDPAS |
|localhost|mysql.sys       |$A$005$THISISACOMBINATIONOFINVAUSTNEVERREUSED|
|localhost|root            |*6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9    |
+---------+----------------+---------------------------------------------+
user 表中已经没有名称为 jeffrey、主机名为 localhost 的账户,即“'jeffrey'@'localhost'”的用户账号已经被删除。

提示,DROP USER 不能自动关闭任何打开的用户对话。而且,如果用户有打开的对话,此时取消用户,命令则不会生效,直到用户对话被关闭后才能生效。一旦对话被关闭,用户也被取消,此用户再次试图登录时将会失败。

MySQL使用DELETE语句删除用户

DELETE 语句基本语法格式如下:
DELETE FROM MySQL.user WHERE host='hostname' and user='username'
host 和 user 为 user 表中的两个字段,两个字段的组合确定所要删除的用户账户记录。

【实例】使用 DELETE 删除用户'customer1'@'localhost'。首先创建用户 customer1,命令如下:
MySQL>CREATE USER 'customer1'@'localhost' IDENTIFIED BY 'my123';
Query OK, 0 rows affected (0.12 sec)

然后使用 DELETE 删除用户 'customer1'@'localhost',命令如下:
mysql> DELETE FROM MySQL.user WHERE host= 'localhost' and user='customer1';
Query OK, 1 row affected (0.01 sec)
可以看到语句执行成功,'customer1'@'localhost' 的用户账号已经被删除。读者可以使用 SELECT 语句查询 user 表中的记录,确认删除操作是否成功。

相关文章