MySQL——数据库的高级操作(二)用户管理(3)删除普通用户

        在 MySQL中,通常会创建多个普通用户来管理数据库,但如果发现某些用户是没有必要的,就可以将其删除,删除用户有两种方式,接下来将针对这两种方式进行详细的讲解。

1、使用 DROP USER 语句删除用户

        DROP USER 语句与 DROP DATABASE 语句有些类似,如果要删除某个用户,只需在 DROP USER 后面指定要删除的用户信息即可。DROP USER 语句删除用户的语法格式如下:

DROP USER 'username'@'hostname'[,'username'@'hostname'];

        上述语法格式中,username表示要删除的用户,hostname表示主机名,DROP USER语句可以同时删除一个或多个用户,多个用户之间用逗号隔开。值得注意的是,使用DROP USER 语句来删除用户时,必须拥有 DROP USER 的权限。使用 DROP USER 语句删除用户 userl,SQL 语句如下:

DROP USER 'user1'@'localhost';

        上述语句执行成功后,可以通过SELECT语句验证用户是否被删除,运行结果如下:

mysql> SELECT Host, User, authentication_string FROM mysql.user;
+-----------+------------------+------------------------------------------------------------------------+
| Host      | User             | authentication_string                                                  |
+-----------+------------------+------------------------------------------------------------------------+
| localhost | mysql.infoschema | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED |
| localhost | mysql.session    | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED |
| localhost | mysql.sys        | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED |
| localhost | root             | *A3687CD1574820D919D6DF2AC07CA3AA9E5438BE                              |
| localhost | user2            | *23AE809DDACAF96AF0FD78ED04B6A265E05AA257                              |
| localhost | user3            | *23AE809DDACAF96AF0FD78ED04B6A265E05AA257                              |
+-----------+------------------+------------------------------------------------------------------------+
6 rows in set (0.00 sec)

        从运行结果可以看出,user 表中已经没有 user1用户了,因此说明该用户被成功删除了。

2、使用 DELETE 语句删除用户

        DELETE语句不仅可以删除普通表中的数据,还可以删除 user 表中的数据,使用该语句删除 user 表中的数据时,只需指定表名为 mysql.user,以及要删除的用户信息即可。同样地,在使用 DELETE 语句时必须拥有对 mysql.user 表的 DELETE 权限。

        DELETE 语句删除用户的语法格式如下:

DELETE FROM mysgl.user WHERE Host='hostname' AND User='username';

        上述语法格式中,mysql.user 参数指定要操作的表,WHERE 指定条件语句,Host 和 User 都是 mysql. user 表的字段,这两个字段可以确定唯一的一条记录。使用 DELETE 语句删除用户 user2,SQL 语句如下:

DELETE FROM mysql.user WHERE Host='localhost' AND User='user2';

        上述语句执行成功后,可以通过 SELECT语句查询用户是否被删除,查询结果如下:

mysql> SELECT Host, User, authentication_string FROM mysql.user;
+-----------+------------------+------------------------------------------------------------------------+
| Host      | User             | authentication_string                                                  |
+-----------+------------------+------------------------------------------------------------------------+
| localhost | mysql.infoschema | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED |
| localhost | mysql.session    | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED |
| localhost | mysql.sys        | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED |
| localhost | root             | *A3687CD1574820D919D6DF2AC07CA3AA9E5438BE                              |
| localhost | user3            | *23AE809DDACAF96AF0FD78ED04B6A265E05AA257                              |
+-----------+------------------+------------------------------------------------------------------------+
5 rows in set (0.00 sec)

        从运行结果可以看出,user 表中已经没有 user2 用户了,因此说明该用户被成功删除了。由于直接对 user表进行操作,执行完命令后需要使用“ FLUSH PRIVILEGES; ”语句重新加载用户权限。

猜你喜欢

转载自blog.csdn.net/W_Fe5/article/details/142203401