【发布时间】:2020-08-19 04:59:40
【问题描述】:
我在服务器上有多个 MySQL 数据库,DB 1、mysql 和 DB 2。我创建了一个用户用户 A。我只想撤销用户 A 对单个数据库(例如 mysql)的访问权限,因为这将有多个日志表。我尝试了无效的基本 REVOKE 语法。
revoke select on mysql.* from user@localhost;
请注意,撤销应该只发生在 mysql DB 而不是 DB 1 和 DB 2。
【问题讨论】:
-
你能显示
SHOW GRANTS FOR user@localhost;的输出吗 -
+----------------------------------------- -------------+ |授予 user@localhost | +-------------------------------------------------- -----+ |将 . 上的所有权限授予 'user'@'localhost' | +-------------------------------------------------- -----+ 1 行(0.00 秒)
-
请添加您的 MySQL 版本。在 8.0.16 之前,您不能这样做,请参阅 How to “subtract” privileges in MySQL,因此您需要删除“所有”权限,然后为每个 db 添加权限。
-
@Solarflare,它的“Ver 14.14 Distrib 5.7.31”
-
另外,根据您提供的帮助链接,“REVOKE INSERT, UPDATE ON mysql.* FROM user@localhost;”,它显示“ERROR 1141 (42000): Unknown error 1141”
标签: mysql