Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 没有权限的用户仍然可以选择_Mysql_Select_Permissions_Grant - Fatal编程技术网

Mysql 没有权限的用户仍然可以选择

Mysql 没有权限的用户仍然可以选择,mysql,select,permissions,grant,Mysql,Select,Permissions,Grant,我是MySQL的新手,我一直在创建测试表,等等 无论如何,我创建了一个新用户,使用 创建由“myPassword”标识的用户“myUser”@“localhost” 现在,当我登录到这个用户时,我可以从前面用root创建的表中进行选择。这肯定不可能吗?用户没有选择权限,或者实际上没有任何权限。如果以root用户身份登录,我会执行以下操作之一: 显示“myUser”@“localhost”的授权 或 选择*从信息\u schema.user\u特权中,如“myUser”@% 我可以看到他们只有使用

我是MySQL的新手,我一直在创建测试表,等等

无论如何,我创建了一个新用户,使用

创建由“myPassword”标识的用户“myUser”@“localhost”

现在,当我登录到这个用户时,我可以从前面用root创建的表中进行选择。这肯定不可能吗?用户没有选择权限,或者实际上没有任何权限。如果以root用户身份登录,我会执行以下操作之一:

显示“myUser”@“localhost”的授权

选择*从信息\u schema.user\u特权中,如“myUser”@%

我可以看到他们只有使用权限。我的理解是,此权限设置为表示用户没有权限

那么这个用户如何从我的表中进行选择呢

如果我这样做:

从信息\u schema.table\u权限中选择*

不返回任何结果

我错过了什么?是否将SELECT之类的特定内容隐式授予新用户?我必须明确撤销这个吗

如果是,隐式授予哪些其他权限


理想情况下,我的目标是一个用户,除了运行我使用GRANT EXECUTE ON指定的一个或多个存储过程之外,什么都做不了。

在我的测试过程中,我创建了一个名为“test”的模式。我不知道,“test”实际上是MySQL的某种保留数据库模式名称。匿名用户可以使用它,等等

因此,我在其中创建的用于测试目的的东西没有其他数据库所做的某些权限限制

除了本页之外,我真的找不到关于此的任何信息:

那个页面说它是随附的,但我很确定我的安装在默认情况下没有

无论哪种方式,即使删除它然后重新创建它,如果它的名称为“test”,匿名用户总是可以访问它,等等


我希望这能帮助一些人,我花了太长时间在这个问题上困惑

我从来没有想到您会在测试模式中创建生产表,但事实证明,这在MySQL中有记录:

此外,mysql.db表包含允许所有帐户的行 访问测试数据库和名称为 用测试仪。这是真实的,即使是没有其他原因的账户 特权,例如默认匿名帐户。这是 便于测试,但不宜在生产服务器上使用。 希望数据库访问仅限于帐户的管理员 具有为此目的明确授予的权限的 删除这些mysql.db表行


因此,这就解释了您的发现,无论哪种方式,即使删除它然后重新创建它,如果它的名称为“test”,匿名用户将始终可以访问它,等等。

您可能不知道您连接的是哪个用户/主机;选中“选择当前用户”;。我明白了myUser@localhost“这正是我所期望的。然而,如果事情按我所想的那样进行,我是否也应该被拒绝这样做呢?阻止所有SELECT查询(包括该查询)和表?这不是真正的SELECT,即不访问表-使用伪grante可以登录到DB服务器,但其他功能不多。我仍然可以从MyTable执行SELECT*;和那个用户也一样。