如何删除MySQL用户帐户
MySQL允许我们创建多个用户帐户并授予适当的特权,以便用户可以连接和管理数据库。
如果不再需要该用户帐户,则最好删除用户特权或者完全删除该用户帐户。
本教程说明了如何删除MySQL/MariaDB用户帐户。
'DROP USER'语句
在MySQL中,我们可以使用“ DROP USER”语句删除一个或者多个用户并分配特权。
该语句的一般语法如下:
DROP USER [IF EXISTS] USER_ACCOUNT [, USER_ACCOUNT] ...
例如,删除“ brian @ localhost”用户帐户登录到MYSQL shell并运行:
DROP USER 'brian@localhost';
成功后,命令将返回:
Query OK, 0 rows affected (0.00 sec)
要在单个命令中删除多个用户帐户,请运行'DROP USER'语句,然后运行要删除的用户,并以空格分隔:
DROP USER 'brian@localhost' 'any@localhost';
如果尝试删除一个不存在的用户帐户,并且未使用“ IF EXISTS”子句,则该命令将返回错误。
如果我们要删除的用户当前已登录,则该用户会话将不会关闭,并且该用户将能够运行查询,直到会话结束。
一旦关闭会话,用户将被删除,它将不再能够登录到MySQL服务器。
用户创建的数据库和对象不会自动删除。
删除MySQL用户帐户
本节逐步说明如何列出和删除MySQL用户帐户。
首先,以root或者其他管理用户身份登录MySQL shell。
为此,请键入以下命令:
sudo mysql
如果我们使用旧的本地MySQL身份验证插件以root用户身份登录,请运行以下命令并在出现提示时输入密码:
mysql -u root -p
以下命令在MySQL Shell中执行。
MySQL在“ mysql”数据库的“ user”表中存储有关用户的信息。
使用以下“ SELECT”语句获取所有MySQL用户帐户的列表:
SELECT User, Host FROM mysql.user;
输出应如下所示:
+------------------+-----------+ | user | host | +------------------+-----------+ | root | localhost | | luke | % | | jabba | localhost | | jabba | 10.10.8.8 | | chewbacca | localhost | +------------------+-----------+ 5 rows in set (0.00 sec)
在MySQL中,用户帐户由用户名和主机名部分组成。
“ jabba @ localhost”和“ [email protected]”是不同的用户帐户。
假设不再需要“ chewbacca @ localhost”用户帐户,我们希望将其删除。
要删除用户运行:
DROP USER 'chewbacca'@'localhost'
Query OK, 0 rows affected (0.00 sec)
该命令将删除用户帐户及其特权。
现在,已删除该用户,我们可能还希望删除与该用户关联的数据库。