只有USAGE权限的新用户能够删除表(MySQL)

时间:2012-11-05 17:46:41

标签: mysql sql

我从root用户登录MySQL。

跑完命令: -

create user new;

然后我以新用户身份登录。执行以下命令: -

use test;
show grants;

输出是: -

GRANT USAGE ON *.* TO ''@'LOCALHOST'

据我所知,新用户在此表上没有删除表权限或任何权限(USAGE除外)。

但是当我运行以下内容时: -

DROP TABLE test_table;

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

提前致谢。

2 个答案:

答案 0 :(得分:0)

根据the manual,你需要考虑更多:

  

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

答案 1 :(得分:0)

http://dev.mysql.com/doc/refman/5.1/en/create-user.html提到CREATE USER在mysql.user表中创建一个新行,并为该帐户分配无权限。 使用用户new运行SHOW GRANTS FOR CURRENT_USER时会得到什么?