在 Mysql 服务无缘无故停止后,我注意到客户端服务器中 mysql 数据库的 db 表中出现了一些奇怪的事情
- 测试和 test_% 条目是什么?
- 为什么数据库 AQUA 有两个条目?
- 为什么有一个名称为空白的条目?
我应该担心其中任何一个吗?针对每个具体情况我应该怎么做?备份后删除那些不应该存在的内容是否安全?
答案1
问题 1. 请立即删除两个条目 test 和 test_%。本书“MySQL 5.0 认证学习指南”(ISBN 0-672-32812-7)第 35 章是关于保护 MySQL 安装的。它建议删除这些。请注意,除 Grants_priv 外,所有权限对于 test 和 test_% 都为 Y。通过这个,我可以对测试数据库或名称以“test_”开头的任何数据库进行恶意操作。以下是可以对测试数据库进行的恶意操作的示例:
USE test<BR>
CREATE TABLE tb (a INT);<BR>
INSERT INTO tb VALUES (1);<BR>
INSERT INTO tb SELECT * FROM tb; <<-- Do This 30 times<BR>
您有一个即时4GB的文件。
恶意的人可以在测试数据库中犯许多这样的错误。
更糟糕的是,在某些情况下,具有这些凭据的人可以从 MySQL 的默认安装中无需密码登录测试数据库。
结论:立即删除测试用户!!!
问题 2. 这个可以
有两个不同的用户可以访问 AQUA 数据库
根@本地主机
dbcon@localhost
他们有不同的访问权限。
只需运行这些命令,即可查看访问权限的差异
SHOW GRANTS FOR root@localhost;
SHOW GRANTS FOR dbcon@localhost;
问题 3。将这一项也删除。我在问题 1 中引用的同一本书也强烈建议删除这一项。该条目将允许匿名用户登录任何数据库。换句话说,不允许任何用户和密码。删除这一项!!!