我从root用户登录MySQL。
跑完命令: -
create user new;
然后我以新用户身份登录。执行以下命令: -
use test;
show grants;
输出是: -
GRANT USAGE ON *.* TO ''@'LOCALHOST'
据我所知,新用户在此表上没有删除表权限或任何权限(USAGE除外)。
但是当我运行以下内容时: -
DROP TABLE test_table;
查询成功。你能解释一下为什么会这样吗?如何禁止此用户删除表并撤消此用户的其他权限。
提前致谢。
答案 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时会得到什么?