[英]How to revoke access to *.* for new user in mysql?
在 mysql 5.6 命令行客户端(以 root 身份登录时)中,我创建了一个用户:
CREATE USER 'admin'@'localhost' IDENTIFIED BY 'password';
然后授予特权:
GRANT ALL PRIVILEGES ON databasename.* TO 'admin'@'localhost';
检查权限时:
SHOW GRANTS FOR 'admin'@'localhost';
显示了上面分配的数据库的特权以及以下各项的特权:
GRANT USAGE ON *.* TO 'admin'@'localhost' IDENTIFIED BY PASSWORD...
我试图撤销特权:
REVOKE ALL PRIVILEGES, GRANT OPTION FROM 'admin'@'localhost';
但它并没有删除*.*
上的用法
我如何撤销对 mysql 中新用户的*.*
访问?
您实际上无法在不删除用户的情况下撤销 USAGE。 USAGE 是全局级别的特权:
USAGE 特权说明符代表“无特权”。 它在全局级别与 GRANT 一起使用,可在不影响现有帐户权限的情况下修改资源限制或 SSL 特征等帐户属性。
所以基本上如果你想删除 USAGE 权限,只需使用:
DROP USER 'admin'@'localhost';
可以使用以下方法从 MySQL 中的用户中删除 USAGE 授权
SHOW GRANTS FOR 'user'@'%';
如果你看到这个命令的输出
GRANT USAGE ON `<database>`.* TO 'user'@'%' WITH GRANT OPTION
然后删除它使用具有刷新权限的撤销
REVOKE ALL PRIVILEGES ON `<database>`.* from 'user'@'%';
FLUSH PRIVILEGES;
REVOKE GRANT OPTION ON `<database>`.* from 'user'@'%';
FLUSH PRIVILEGES;
使用此命令验证更新的用户权限
SHOW GRANTS FOR 'user'@'%';
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.