我有一台为我创建的服务器。 在它上面有一个名为“test”的模式。
我已经使用root用户登录,并创建了一个名为“WEB”的新架构。
create schema WEB;
我现在要做的是拥有一个只能看到新架构的用户。
所以我创建了一个像这样的用户:
create user webtestuser identified by 'webtestuser';
grant select, insert, update, delete on WEB.* to webtestuser;
问题是当我使用新用户登录时,我仍然可以看到“测试”架构。即使我“撤销用户”,该架构仍然可见。
我在这里缺少什么?
谢谢!
答案 0 :(得分:3)
默认情况下,mysql附带了一些针对定义的测试模式的授权。它们ALL ON test
适用于所有用户,ALL ON test\_%
适用于所有用户(test\_%
匹配test_foo
,test_123
等内容
由于它们的定义方式,我无法使用REVOKE ... FROM
语法找到删除这些授权的方法,因此您必须使用以下内容:
DELETE FROM mysql.db WHERE Db IN("test","test\_%") AND User="" AND Host="%";
FLUSH PRIVILEGES;