这是一组普通的MySQL特权吗?


9

在本地测试Wamp设置上使用phpmyadmin以及几乎所有的标题状态,有3个用户标记为user = ANY,密码= NO,例如:

USER | HOST    | Password | Global Priv | Grant
-----+---------+----------+-------------+------
Any  | %       | No       | USAGE       | No
Any  | Local   | No       | USAGE       | No
Any  | Domain  | No       | USAGE       | No
-----+---------+----------+-------------+------

这3个用户中的任何一个都没有对任何表具有任何特定特权,因此看来他们不能做太多事情。这是某种通用的安全措施,以明确声明不属于任何其他用户组的“任何”用户都没有特权吗?


这实际上是一个很好的问题,因为mysql带有未发布的默认权限。+1 !!!
RolandoMySQLDBA 2011年

Answers:


6

实际上,这三个用户帐户实际上非常危险。它们对测试数据库构成了极大的威胁。

不幸的是,mysql具有对测试数据库的完全访问权限。您如何找到它们?

运行此查询:

 SELECT user,host,db from mysql.db;

安装mysql后,您会看到两行,可以完全访问任何名为“ test”或前5个字符为“ test_”的数据库。

为什么这是个问题 ???

尝试运行以下命令:

$ mysql -u'' -Dtest

您将在没有密码的情况下连接测试数据库。

现在,创建一个表并将其装入一行:

CREATE TABLE mytable (a int);
INSERT INTO mytable VALUES (1);

好,大不了 你能把这张桌子的大小翻倍30倍吗?

INSERT INTO mytable SELECT * FROM mytable;
INSERT INTO mytable SELECT * FROM mytable;
... (30 times)
INSERT INTO mytable SELECT * FROM mytable;

你得到了什么 ??具有1,073,741,824行的表。轻松达到4GB以上。

想象一下创建任何大小的表。如何在测试数据库中创建一堆表并随意访问它们呢?

在这种情况下,您可以做的最好的事情是运行以下查询:

DELETE FROM mysql.db;

并重启mysql。然后,这三个帐户将被适当地停用。

试试看 !!!

更新2011-09-12 10:00 EDT

此删除:

DELETE FROM mysql.db;
FLUSH PRIVILEGES;

正是您最初安装所需要的。但是,如果已经建立了用户,则可以运行以下命令:

DELETE FROM mysql.db WHERE db IN ('test','test_%');
FLUSH PRIVILEGES;

这将删除特定的两个数据库权限。

正如我在回答中提到的那样,这三个权限对于测试数据库非常危险。运行此DELETE将中和那些具有测试数据库完整权限的帐户。


感谢您的解释,但是从mysql.db中删除是否会从这3个用户中删除其他内容?我不想除了那些3删除任何数据/特权时
克里斯

@Chris-我在3小时前更新了我的答案,以解决您的评论。
RolandoMySQLDBA 2011年

-1

保留这些匿名帐户帐户的危险已经得到很好的解释。

该手册提供了全面的步骤清单,以确保“ 保护初始MySQL帐户 ”的安全

特别是,“分配匿名帐户密码”部分建议删除这些帐户。

另外,“保护测试数据库”一章建议:

缺省情况下,该mysql.db表包含允许任何用户访问test名称以开头的数据库和其他数据库的行test_。(...)这意味着即使没有特权的帐户也可以使用此类数据库。如果要删除任何用户对测试数据库的访问权限,请执行以下操作:

mysql> DELETE FROM mysql.db WHERE Db LIKE 'test%';
mysql> FLUSH PRIVILEGES;

(...)通过前面的更改,只有具有全局数据库特权或为测试数据库明确授予的特权的用户才能使用它。

特别是在非Windows系统上,建议运行mysql_secure_installation脚本。我相信Windows安装程序提供了几个安装配置文件。其中一些将自动禁用不安全的设置。如果不是,则检查列表将需要手动运行。

必须小心使用第三方安装程序,例如WAMP。官方MySQL手册中指示的默认权限可能并不总是适用于这些自定义安装(如“手册范围之外”)。当然,对于生产服务器,应不惜一切代价避免WAMP安装等。 。


为什么对这个答案不满意?
user12345
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.