如何防止用户访问特定架构?

时间:2011-05-08 09:48:53

标签: mysql schema privileges

我有一台为我创建的服务器。 在它上面有一个名为“test”的模式。

我已经使用root用户登录,并创建了一个名为“WEB”的新架构。

create schema WEB;

我现在要做的是拥有一个只能看到新架构的用户。

所以我创建了一个像这样的用户:

create user webtestuser identified by 'webtestuser';

grant select, insert, update, delete on WEB.* to webtestuser;

问题是当我使用新用户登录时,我仍然可以看到“测试”架构。即使我“撤销用户”,该架构仍然可见。

我在这里缺少什么?

谢谢!

1 个答案:

答案 0 :(得分:3)

默认情况下,mysql附带了一些针对定义的测试模式的授权。它们ALL ON test适用于所有用户,ALL ON test\_%适用于所有用户(test\_%匹配test_footest_123等内容

由于它们的定义方式,我无法使用REVOKE ... FROM语法找到删除这些授权的方法,因此您必须使用以下内容:

DELETE FROM mysql.db WHERE Db IN("test","test\_%") AND User="" AND Host="%";
FLUSH PRIVILEGES;