使用previleges的新用户能够删除一个表(MySQL)

使用previleges的新用户能够删除一个表(MySQL),mysql,sql,Mysql,Sql,我从root用户登录MySQL 运行命令:- create user new; 然后我以新用户身份登录。运行以下命令:- use test; show grants; 结果是:- GRANT USAGE ON *.* TO ''@'LOCALHOST' 据我所知,新用户在此表上没有drop table权限或任何权限(用法除外) 但是,当我运行以下命令时:- DROP TABLE test_table; 查询成功。你能解释一下为什么会这样吗?如何禁用此用户删除表和撤消此用户的其他权限 提前

我从root用户登录MySQL

运行命令:-

create user new;
然后我以新用户身份登录。运行以下命令:-

use test;
show grants;
结果是:-

GRANT USAGE ON *.* TO ''@'LOCALHOST'
据我所知,新用户在此表上没有drop table权限或任何权限(用法除外)

但是,当我运行以下命令时:-

DROP TABLE test_table;
查询成功。你能解释一下为什么会这样吗?如何禁用此用户删除表和撤消此用户的其他权限

提前感谢。

根据,您需要考虑的还有:

SHOW GRANTS仅显示显式授予的权限 指定帐户。该帐户可能具有其他权限,但 它们不显示。例如,如果存在匿名帐户, 指定的帐户可能能够使用其权限,但显示授权 不会显示它们

提到CREATE USER在mysql.USER表中创建一个新行,并为帐户分配no权限。
当您使用USER new为当前用户运行SHOW GRANTS时会得到什么?

Hi,但是我也没有明确授予“USAGE”权限。我根本没有分配任何权限。根据,用法是“没有特权”的同义词。嗯……好吧。。。当我运行“select*from information_schema.USER_PRIVILEGES;”时。。。。表中只有一个条目对应于用户“new”,即:-“new”@“%”def | USAGE | NO“,所以,不管怎样……有什么方法修复它吗?相同。。。将.上的使用权授予'@'本地主机''