我需要从某些主机中删除数据库访问权限。有两种选择:
此选项似乎是最好的,因为我不需要删除单个用户
use mysql;
delete from user where host='myhost';
在下面的第二个选项中,我需要删除单个用户。
drop user 'user1'@'myhost';
drop user 'user2'@'myhost';
drop user 'user3'@'myhost';
知道这些选项之间有什么区别吗?有什么优点和缺点吗?
谢谢
当您使用DROP USER
语句时,它会删除一个或多个帐户 + 他们的帐户权限。
当您使用DELETE User
时,它只是一个对表产生影响的 SQL 命令。
DROP
总是比delete
更强大
或者您可以使用REVOKE
删除授予的所有渗透
REVOKE ALL PRIVILEGES, GRANT OPTION FROM 'user'@'myhost';
特权是
- 所有权限 – 向 MySQL 用户授予所有权限
- 创建 – 允许用户创建数据库和表
- DROP - 允许用户删除数据库和表
- 删除 - 允许用户从特定的MySQL表中删除行
插入 - 允许用户将行插入特定的MySQL表
选择 – 允许用户读取数据库
- 更新 - 允许用户更新表行
阅读更多 关于 删除用户声明
修改数据库表需要flush privileges
调用来刷新缓存的数据。此外,您必须确保手动删除所有用户 AND 权限(例如,对于表、列(。
立即授予/删除用户工作。
参看 https://dev.mysql.com/doc/refman/8.0/en/privilege-changes.html