繁体   English   中英

如何撤销mysql中新用户对*.*的访问?

[英]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 特征等帐户属性。

来自MySQL 文档提供的权限

所以基本上如果你想删除 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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM