我一直在MySQL数据库中尝试用户权限,但仍然无法得到想要的结果。
昨天,我授予了权限,然后又撤销了,但用户仍然拥有该权限。 (相同的浏览器,只是注销)。重新启动浏览器后,它确实按预期工作。
今天,我设置了权限
GRANT CREATE ON `testdb`.`testtbl` TO 'ttt'@'localhost' IDENTIFIED BY 'test'
我不仅看到了“testdb”,而且还看到了表“test” - 我不应该看到。当我进入数据库“testdb”时,我无法创建表。它说
CREATE command denied to user 'ttt'@'localhost' for table 'ttbl'
SQL命令:
CREATE TABLE `ttbl` (
`test1` int NOT NULL,
`test2` int NOT NULL
) COMMENT='';
我认为我缺少此特权的某些点,但我仍然无法弄清楚出了什么问题。
仅使用此命令时可能会出现什么问题? (不是CREATE USER,不确定是否是强制的)
谢谢
最佳答案
在 MySQL 中,更改权限后,始终运行以下命令:
flush privileges;
它强制 MySQL 运行时主动重新加载权限表,从而清除所有其他过时的权限。它不会自动执行此操作,因为它必须主动检测授权表的更改。
关于MySQL 权限,允许/禁止,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16020839/