在第一个Windows安装mysql.db是空的,即使我可以通过其他方式看到testing数据库

我第一次安装了MySQL。 我使用了MySQL 5.5.11 for Windows,并使用MySql服务器实例configuration向导,并select了一个root密码。

当我testing系统相比2.3.8。 Windows Postinstallation程序一切正常,除了我的mysql.db是空的,即使我可以看到(空) test数据库使用mysqlshowSELECT SCHEMA_NAME FROM INFORMATION_SCHEMA.SCHEMATA

我的安装是否有问题,或只是文档“错误”?

编辑:我没有select不包括与SICW的匿名login,所以也许文件“错误”更接近事实,因为它应该提到它不会列出没有安装匿名login?

任何名为test的数据库或者其名称前缀为test的数据库都将被授予对匿名帐户的完全访问权限。 根据MySQL 5.0authentication学习指南(ISBN 0-672-32812-7) ,第498页build议删除匿名帐户和testing数据库。

自写这篇文章以来,MySQL 5.1已经在这两行中填充了mysql.db。 我没有看到任何地方logging。 赶紧跑

 DELETE FROM mysql.db; FLUSH PRIVILEGES; DROP DATABASE test; 

所有的忧虑都将消失!

请不要命名任何testing数据库testing,或者test_ <任何东西>

UPDATE

清理mysql.db是完全可以的,特别是对于testing数据库。 MySQL已经在mysql.db中包含了test和test_%,并且拥有所有权限。 匿名login因此可以访问任何testing数据库。 简单的磁盘攻击可能会损害MySQL的安装。 这里是一个例子:

 USE test CREATE TABLE rolando_tb (a int); INSERT INTO rolando_tb VALUES (1); INSERT INTO rolando_tb SELECT a FROM rolando_tb; INSERT INTO rolando_tb SELECT a FROM rolando_tb; INSERT INTO rolando_tb SELECT a FROM rolando_tb; INSERT INTO rolando_tb SELECT a FROM rolando_tb; 

运行插入30次,你会得到一个7GB的表

试想一下,在testing数据库中创build这些表中的几个

试想一下,在testing数据库中创build一个存储过程

只要mysql.db中存在test和test_%,那么可能性是无止境的

这没有logging。 它应该是 !!!

这确实是Installtion Security领域的文档错误。 +1捕捉那个!!!!!