GRANT
和REVOKE
的文章,但是发现这些解决方案只适用于为特定用户授予或撤销特定表的权限。我要寻找的是:当有多个用户时,每个用户都可以访问定义的模式,而其中一个用户将拥有对一个模式的完全访问权限。并且我不希望一个用户访问除了授权访问权限以外的其他模式。
请建议如何使用
GRANT
或REVOKE>来实现这一点?
GRANT
和REVOKE
的文章,但是发现这些解决方案只适用于为特定用户授予或撤销特定表的权限。GRANT
或REVOKE>来实现这一点?
YOUR_PARTICULAR_SCHEMA
所有权限授予一个名为USERNAME
的特定用户,该用户来自特定的IP地址(在本例中为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地址(使用通配符%)
:GRANT ALL PRIVILEGES ON YOUR_PARTICULAR_SCHEMA.* TO 'USERNAME'@'%' IDENTIFIED BY 'PASSWORD' WITH GRANT OPTION;
Schemas
的所有权限授予一个名为USERNAME
的特定用户,该用户来自特定的IP地址(在本例中为1.2.3.4)
:GRANT ALL PRIVILEGES ON *.* TO 'USERNAME'@'1.2.3.4' IDENTIFIED BY 'PASSWORD' WITH GRANT OPTION;
Schemas
的所有权限授予一个名为USERNAME
的特定用户,该用户来自任何IP地址(使用通配符%)
:GRANT ALL PRIVILEGES ON *.* TO 'USERNAME'@'%' IDENTIFIED BY 'PASSWORD' WITH GRANT OPTION;
注意:您的情况属于前两种情况之一。根据您的选择,可以选择其中任何一种。
编辑:如果您想从先前授予权限的用户中删除权限,则使用REVOKE命令。
REVOKE会删除权限,但不会删除mysql.user表条目。要完全删除用户帐户,请使用DROP USER。
GRANT ALL PRIVILEGES ON YOUR_PARTICULAR_SCHEMA.* TO 'USERNAME'@'%' IDENTIFIED BY 'PASSWORD' WITH GRANT OPTION;
这帮助我创建了两个不影响彼此数据库结构的具有访问两个数据库权限的不同用户。 当尝试使用用户一登录到数据库二时,它会给出“拒绝访问”错误。这正是所需的。 - Mandar Pandit