0

我从 root 用户登录到 MySQL。

运行命令:-

create user new;

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

use test;
show grants;

输出是:-

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

据我了解,新用户对此表没有删除表权限或任何与此相关的权限(USAGE 除外)。

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

DROP TABLE test_table;

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

提前致谢。

4

2 回答 2

0

根据手册,您需要考虑更多:

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

于 2012-11-05T17:59:06.740 回答
0

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

于 2012-11-05T18:04:26.720 回答