在安全审计期间,我刚刚查看了我的 MySQL 用户权限,发现大约有 20 个 MySQL 用户被创建,名字都是随机的,比如“bug115166_10073”。他们根本没有启用任何权限,而且我是唯一管理数据库的人。
有人能想到这些可能是什么以及它们来自哪里吗?鉴于这些用户没有分配任何权限,我认为可以安全删除它们?
答案1
请立即将其删除!!!
原因如下:匿名用户可以访问前 4 个字母为 的任何数据库test
。您可以在测试数据库中执行大量 CRUD 密集型操作。您可能还想将测试数据库重命名为完全不同的名称。请阅读这些链接,因为我之前已在 DBA StackExchange 中解决过此问题。
为了确认是否需要这样做,请注意MySQL 5.0 认证学习指南第 498 页第 6 段要点如下:
在 Unix 上,MySQL 附带一个 mysql_secure_installation 脚本,该脚本可以对您的安装执行几个有用的安全相关操作。该脚本具有以下功能:
- 为 root 账户设置密码
- 删除所有可以远程访问的根帐户。
- 删除匿名用户帐户。这可以提高安全性,因为它可以防止任何人从远程主机以 root 身份连接到 MySQL 服务器。结果是,任何想要以 root 身份连接的人都必须首先能够登录服务器主机,这为抵御攻击提供了额外的屏障。
- 删除测试数据库(如果删除匿名帐户,您可能还想删除他们有权访问的测试数据库)。
答案2
从评论中@Pekka 的反问延伸,检查你现有的有效的用户权限。您可能有一个应用程序帐户拥有CREATE USER
权限但没有权限GRANT
。为了防止将来发生这种情况,请CREATE USER
从除管理帐户之外的所有帐户中撤销权限。