如何让一个 MySQL 用户只访问一个架构

Man*_*dit 4 mysql permissions

我搜索了很多关于“如何仅允许一个用户访问一个架构”的内容,但没有找到任何令人信服的解决方案。我已经阅读GRANTREVOKE找到了解决方案,例如授予或撤销特定用户对特定表的权限。

我正在寻找的是,当有多个用户时,每个用户都可以访问定义的架构,而一个用户将拥有对一个架构的完全访问权限。而且我不希望一个用户访问另一个 Schema,除了被授予访问权限的那个。

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

100*_*111 6

  • 将您的所有访问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从 any命名的特定用户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从 any命名的特定用户IP ADDRESS (use wildcard operator %)

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

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

编辑:如果您想从以前被授予权限的用户中删除权限,请使用REVOKE命令。

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