新用户拥有MySQL 5.6中的所有权限

新用户拥有MySQL 5.6中的所有权限,mysql,database,privileges,grant,Mysql,Database,Privileges,Grant,我在mySQL 5.6中创建新用户时遇到问题 我想要的是: 当我创建新用户时,它没有任何特权,我只想在几个特定列中授予一些select和update权限。因此,他应该能够更新数据库中的任何内容。听起来很公平 因此,首先,我创建一个新用户: CREATE USER 'newuser'@'%' IDENTIFIED BY 'password'; 在此之后,我与我的新用户登录,当我执行显示授权时命令我有这个: GRANT USAGE ON *.* TO 'newuser'@'%' IDENTIFIE

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

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

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

CREATE USER 'newuser'@'%' IDENTIFIED BY 'password';
在此之后,我与我的新用户登录,当我执行
显示授权时命令我有这个:

GRANT USAGE ON *.* TO 'newuser'@'%' IDENTIFIED BY PASSWORD '*2470C0C06DEE42FD1618BB99005ADCA2EC9D1E19'
所以在我的理论中,他不能在我的数据库中做任何事情,因为他没有任何
GRANT SELECT
特权

但当我在测试表中进行选择时,他可以查看所有列和所有结果。他可以更新。。。做他想做的一切。就像他有一个
授权选择,更新,删除。。。在*.TO'newuser'@'%
上,但我无法撤销该命令,因为他没有该命令

当然,我已经尝试撤销所有特权,但我不能,因为他没有任何特权

我希望我明白了。所以我很困惑,有什么想法吗

谢谢


Clément

在许多默认安装中,所有用户都对任何名为
test
或以
test\uuu
开头的数据库中的表拥有所有权限

发件人:

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


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

Oh f*ck。。。谢谢你的时间,谢谢你的回答!欢迎来到堆栈溢出!别忘了标记正确的答案,一旦你有了足够的声誉,就投票选出你认为好的问题和答案!
mysql> DELETE FROM mysql.db WHERE Db LIKE 'test%';
mysql> FLUSH PRIVILEGES;