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

如何使一个MySQL用户只访问一个模式,mysql,permissions,Mysql,Permissions,我搜索了很多关于“如何只允许一个用户访问一个模式”的内容,但没有找到任何令人信服的解决方案。我读过关于GRANT和REVOKE的内容,但发现了一些解决方案,如为特定用户授予或撤销特定表上的权限 我要寻找的是,当有多个用户时,每个用户都可以访问定义的模式,一个用户将拥有对一个模式的完全访问权限。 我不想让一个用户访问另一个模式,除了授予访问权限的用户 请建议如何准确地使用授权或撤销来执行此操作? 将您的特定模式的所有访问权授予特定 从特定的IP地址(在本例中为xxx.xxx.xxx.xxx)命名为

我搜索了很多关于“如何只允许一个用户访问一个模式”的内容,但没有找到任何令人信服的解决方案。我读过关于
GRANT
REVOKE
的内容,但发现了一些解决方案,如为特定用户授予或撤销特定表上的权限

我要寻找的是,当有多个用户时,每个用户都可以访问定义的模式,一个用户将拥有对一个模式的完全访问权限。 我不想让一个用户访问另一个模式,除了授予访问权限的用户

请建议如何准确地使用
授权
撤销
来执行此操作?

  • 将您的
    特定模式的所有访问权授予特定
    从特定的
    IP地址(在本例中为xxx.xxx.xxx.xxx)命名为
    用户名的用户:
将您的_特殊_模式的所有特权。*授予“用户名”@“xxx.xxx.xxx.xxx”,由带有授予选项的“密码”标识

  • 将您的
    特定模式的所有访问权授予特定
    来自任何
    IP地址的名为
    用户名的用户(使用通配符%)
将您的_特定_架构。*上的所有权限授予“用户名”@“%”,由带有授予选项的“密码”标识

  • 将所有
    模式的所有访问权授予特定的
    从特定的
    IP地址(在本例中为1.2.3.4)命名为
    用户名的用户:
将**上的所有权限授予“用户名”@“1.2.3.4”,该用户名由带有授予选项的“密码”标识

  • 将所有
    模式的所有访问权授予特定的
    来自任意
    IP地址的名为
    用户名的用户(使用通配符%)
将**上的所有权限授予“用户名”@“%”,该用户名由带有授予选项的“密码”标识

注意:您的情景发生在前两种情况中。您可以根据自己的选择选择其中的任何一个

编辑:如果要从以前被授予特权的用户中删除特权,请使用命令

REVOKE删除特权,但不删除mysql.user表项。 要完全删除用户帐户,请使用DROP user


谢谢第二个选择对我很有效<代码>授予您的_特定_架构上的所有权限。*给“用户名”@“%”,由带有授予选项的“密码”标识这帮助我创建了两个不同的用户,他们有权访问两个数据库,并且不会影响彼此的数据库结构。当尝试使用用户1登录数据库2时,出现了
拒绝访问
错误。这正是我们所需要的。很高兴听到它起作用了。不客气:)@MandarPandit