我有一个为我创建的服务器。 它上面有一个名为“test”的模式。
我已经使用 root 用户登录,并创建了一个名为“WEB”的新模式。
create schema WEB;
我现在想做的是让一个用户只能看到那个新模式。
所以我创建了一个这样的用户:
create user webtestuser identified by 'webtestuser';
grant select, insert, update, delete on WEB.* to webtestuser;
问题是当我用新用户登录时,我仍然可以看到“测试”架构。即使当我对用户“全部撤销”时,该架构仍然可见。
我在这里遗漏了什么吗?
谢谢!
最佳答案
默认情况下,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;
关于mysql - 如何防止用户访问特定模式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5926713/