如何使一个MySQL用户只能访问一个模式

时间:2016-03-07 13:25:01

标签: mysql permissions

我已经搜索了很多关于"如何仅允许One Schema访问一个用户"但是没有找到任何令人信服的解决方案。我已阅读有关GRANTREVOKE的信息,但发现解决方案如授予或撤消特定用户对特定表的权限。

我正在寻找的是,当拥有多个用户时,每个用户都可以访问已定义的架构,并且一个用户将拥有对一个架构的完全访问权限。 并且我不希望一个用户访问其他Schema,除了给出访问权限的用户。

请建议如何准确使用GRANTREVOKE来执行此操作?

1 个答案:

答案 0 :(得分:1)

  • YOUR_PARTICULAR_SCHEMA的所有访问权限授予特定用户 来自特定USERNAME的用户IP ADDRESS (in this case xxx.xxx.xxx.xxx)

    GRANT ALL PRIVILEGES ON YOUR_PARTICULAR_SCHEMA.* TO 'USERNAME'@'xxx.xxx.xxx.xxx' IDENTIFIED BY 'PASSWORD' WITH GRANT OPTION;

  • YOUR_PARTICULAR_SCHEMA的所有访问权限授予特定用户 来自任何USERNAME的用户名为IP ADDRESS (use wildcard operator %)

    GRANT ALL PRIVILEGES ON YOUR_PARTICULAR_SCHEMA.* TO 'USERNAME'@'%' IDENTIFIED BY 'PASSWORD' WITH GRANT OPTION;

  • 将所有Schemas的所有访问权限授予特定内容 来自特定USERNAME的用户IP ADDRESS (in this case 1.2.3.4)

    GRANT ALL PRIVILEGES ON *.* TO 'USERNAME'@'1.2.3.4' IDENTIFIED BY 'PASSWORD' WITH GRANT OPTION;

  • 将所有Schemas的所有访问权限授予特定内容 来自任何USERNAME的用户名为IP ADDRESS (use wildcard operator %)

    GRANT ALL PRIVILEGES ON *.* TO 'USERNAME'@'%' IDENTIFIED BY 'PASSWORD' WITH GRANT OPTION;

注意:您的方案位于前两种情况。您可以根据自己的选择选择其中任何一个。

编辑:如果您要删除之前已被授予权限的用户的权限,请使用REVOKE命令。

  

REVOKE删除权限,但不删除mysql.user表条目。   要完全删除用户帐户,请使用DROP USER