我搜索了很多关于“如何仅允许一个用户访问一个架构”的内容,但没有找到任何令人信服的解决方案。我已经阅读GRANT
并REVOKE
找到了解决方案,例如授予或撤销特定用户对特定表的权限。
我正在寻找的是,当有多个用户时,每个用户都可以访问定义的架构,而一个用户将拥有对一个架构的完全访问权限。而且我不希望一个用户访问另一个 Schema,除了被授予访问权限的那个。
请建议如何准确地使用GRANT
或REVOKE
来执行此操作?
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