root更改表名后,当试图从最终用户处撤销对不存在的表名的权限时,会出错



我当前正在使用root帐户

我有一个表-user1_db.table1user1具有以下权限-

SHOW GRANTS FOR user1@localhost;
GRANT SELECT, INSERT, UPDATE, DELETE, INDEX, ALTER ON `user1_db`.`table1` TO `user1`@`localhost`

现在,我将table1重命名为table2,但我忘记在table1的第一个上撤销user1的权限

我现在将table2上的相同权限授予user1

现在我有权限作为-

SHOW GRANTS FOR user1@localhost;
GRANT SELECT, INSERT, UPDATE, DELETE, INDEX, ALTER ON `user1_db`.`table1` TO `user1`@`localhost`
GRANT SELECT, INSERT, UPDATE, DELETE, INDEX, ALTER ON `user1_db`.`table2` TO `user1`@`localhost`

因此,现在对一个不存在的表名table1授予了权限

我试图撤销许可。

REVOKE ALL PRIVILEGES ON `user1_db`.`table1` FROM `user1`;

但是,我得到了错误-

ERROR 1819 (HY000): Your password does not satisfy the current policy requirements

我尝试了以下方法来降低密码复杂性要求-

SET GLOBAL VALIDATE_PASSWORD.POLICY = LOW;
SET GLOBAL VALIDATE_PASSWORD.LENGTH = 2;
SET GLOBAL VALIDATE_PASSWORD.MIXED_CASE_COUNT = 0;
SET GLOBAL VALIDATE_PASSWORD.NUMBER_COUNT = 0;
SET GLOBAL VALIDATE_PASSWORD.SPECIAL_CHAR_COUNT = 0;

但问题依然存在。那么,我如何从user1撤销对不存在的表的权限?table1

我遇到了这个变通方法。

我从根帐户创建了一个表user1_db.table1

CREATE TABLE table1 (col1 INT);

然后我注销,重新启动mysql服务器,然后再次登录

现在查询-

REVOKE ALL PRIVILEGES ON `user1_db`.`table1` FROM `user1`;

运行时没有任何错误。

现在,user1权限是-

SHOW GRANTS FOR user1@localhost;
GRANT SELECT, INSERT, UPDATE, DELETE, INDEX, ALTER ON `user1_db`.`table2` TO `user1`@`localhost`

然后我删除了table1

DROP TABLE user1_db.table1;

相关内容

  • 没有找到相关文章

最新更新