在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中新用户的*.*
访问权限?
答案 0 :(得分:4)
如果不删除用户,您实际上无法撤消USAGE。 USAGE是全球级特权:
USAGE特权说明符代表“没有特权”。它在GRANT的全局级别用于修改帐户属性,例如资源限制或SSL特性,而不会影响现有帐户权限。
来自Privileges Provided by MySQL documentation。
所以基本上如果要删除USAGE权限,只需使用:
DROP USER 'admin'@'localhost';
答案 1 :(得分:2)
使用以下方法可以从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'@'%';