MySQL - 'Drop User' 与 'delete from user'的区别

3

我需要从某些主机中删除数据库访问权限。有两个选择:

这个选项似乎是最好的,因为我不需要删除单独的用户。

use mysql;
delete from user where host='myhost';

在下面的第二个选项中,我需要删除单个用户。
drop user 'user1'@'myhost';
drop user 'user2'@'myhost';
drop user 'user3'@'myhost';

你知道这些选项之间有什么区别吗?有什么优缺点吗?

谢谢。

2个回答

3

当你使用 DROP USER 语句时,它会删除一个或多个账户以及它们的账户权限。

而当你使用 DELETE User 时,它只是一条针对表的SQL命令。

DROP 总是比 delete 更加强大。


或者您可以使用REVOKE来移除所有授予的权限。

REVOKE ALL PRIVILEGES, GRANT OPTION FROM 'user'@'myhost';

权限

  1. ALL PRIVILEGES - 给予MySQL用户所有权限
  2. CREATE - 允许用户创建数据库和表格
  3. DROP - 允许用户删除数据库和表格
  4. DELETE - 允许用户从特定的MySQL表中删除行数据
  5. INSERT - 允许用户向特定的MySQL表格中插入行数据

  6. SELECT - 允许用户读取数据库

  7. UPDATE - 允许用户更新表格行数据

了解更多关于DROP USER 语句的信息。


2
@Rahul 也读了关于“DROP USER 不会自动关闭任何打开的用户会话”的说明... 当您需要确保它们已经离开时,请使用 SHOW [FULL] PROCESSLIST 并可能从该用户中使用 KILL 命令关闭正在休眠的连接,以从服务器上“踢出”(关闭)那些连接。 - Raymond Nijland

0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接