【发布时间】:2021-05-07 07:53:20
【问题描述】:
我有一个用户拥有 MySQL 8 中特定数据库的所有权限:
GRANT ALL PRIVILEGES ON `mydatabase`.* TO `foo`@`localhost`
我可以使用SHOW GRANTS FOR 'foo'@'localhost'; 查看赠款,我得到:
+-------------------------------------------------------------+
| Grants for foo@localhost |
+-------------------------------------------------------------+
| GRANT USAGE ON *.* TO `foo`@`localhost` |
| GRANT ALL PRIVILEGES ON `mydatabase`.* TO `foo`@`localhost` |
+-------------------------------------------------------------+
现在我需要删除特定表上的 DELETE 授权,所以我尝试了:
REVOKE DELETE ON `mydatabase`.`mytable` FROM 'foo'@'localhost';
但我收到以下错误:
ERROR 1147 (42000): There is no such grant defined for user 'foo' on host 'localhost' on table 'mytable'
如何删除删除授权?我必须一一添加所有授权(它们是哪些?),然后删除删除授权?
【问题讨论】: