繁体   English   中英

新用户拥有MySQL 5.6的所有特权

[英]New user has all privileges in MySQL 5.6

在mySQL 5.6中创建新用户时遇到问题

我想要的是:创建新用户时,它没有任何特权,我只想在一些特定的列中授予一些选择和更新。 因此,他应该能够更新所有数据库中的所有内容。 听起来很公平。

因此,首先,我创建一个新用户:

CREATE USER 'newuser'@'%' IDENTIFIED BY 'password';

此后,我以新用户身份登录,并在获得show grants;时登录show grants; 命令我有这个:

GRANT USAGE ON *.* TO 'newuser'@'%' IDENTIFIED BY PASSWORD '*2470C0C06DEE42FD1618BB99005ADCA2EC9D1E19'

因此,根据我的理论,他无法在数据库中执行任何操作,因为他没有任何GRANT SELECT特权。

但是,当我在测试表中进行选择时,他可以查看所有列和所有结果。 他可以更新...并做他想做的一切。 就像他具有GRANT SELECT,UPDATE,DELETE ... ON *.* TO 'newuser'@'%'但我无法撤消,因为他没有。

当然,我试图撤消所有特权,但是我不能,因为他没有任何特权。

我希望我很清楚。 所以我很困惑,有什么想法吗?

谢谢!

克莱门特

在许多默认安装中,所有用户都对名为test或以test_开头的任何数据库中的表具有所有特权。

http://dev.mysql.com/doc/refman/5.6/en/default-privileges.html#idp5999952

默认情况下,mysql.db表包含允许任何用户访问测试数据库和其他名称以test_开头的其他数据库的行。 ...如果要删除任何用户对测试数据库的访问权限,请执行以下操作:

mysql> DELETE FROM mysql.db WHERE Db LIKE 'test%';
mysql> FLUSH PRIVILEGES;

或者,确保您的测试表不在具有该名称的数据库中,然后您将看到真正的行为。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM