【问题标题】:How to prevent a user from accessing a specific schema?如何防止用户访问特定模式?
【发布时间】:2011-05-08 09:48:53
【问题描述】:

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

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

create schema WEB;

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

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

create user webtestuser identified by 'webtestuser';

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

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

我在这里遗漏了什么?

谢谢!

【问题讨论】:

  • 请您以该用户身份登录并发布命令的输出SHOW GRANTS;
  • 您是否尝试过撤销权限来测试用户的架构然后FLUSH PRIVILEGES

标签: mysql schema privileges


【解决方案1】:

默认情况下,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;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-09-30
    • 1970-01-01
    • 1970-01-01
    • 2016-04-11
    • 1970-01-01
    • 2014-12-31
    • 2018-01-12
    • 1970-01-01
    相关资源
    最近更新 更多