刚刚在安全审计期间查看了我的MySQL用户权限,并注意到大约20个MySQL用户已经使用随机名创build,如“bug115166_10073”。 他们根本没有任何权限,我是唯一一个pipe理数据库的人。
谁能想到这些可能是什么,他们来自哪里? 看到分配给这些用户的权限为零,我认为他们可以安全地删除?
请马上删除它们!
这是为什么:匿名用户有权访问前4个字母进行test
任何数据库。 您可以在testing数据库中执行大量的CRUD密集型工作。 您可能还想要将testing数据库重新命名为完全不同的内容。 请阅读这些链接,因为我之前在DBA StackExchange中解决了这个问题。
不能从mysql.user中删除匿名用户
这是一组正常的MySQL权限吗?
为了确认需要这样做,请注意MySQL 5.0authentication学习指南第498页的第6段中的要点:
在Unix上,MySQL附带了一个mysql_secure_installation脚本,可以在您的安装上执行一些有用的与安全相关的操作。 该脚本具有以下function:
- 为root帐户设置密码
- 删除任何可远程访问的根帐户。
- 删除匿名用户帐户。 这样可以提高安全性,因为它可以防止任何人以远程主机的身份作为root连接到MySQL服务器。 结果是,任何想以root用户身份进行连接的用户都必须首先能够login到服务器主机上,这样可以防止攻击。
- 删除testing数据库(如果您删除匿名帐户,您可能还想要删除他们有权访问的testing数据库)。
从评论中的@ Pekka的修辞问题扩展,检查你现有的有效用户的权限。 您可能有一个具有CREATE USER
权限但不是GRANT
的应用程序帐户。 为了防止这种情况在未来发生,请撤消除您的pipe理帐户之外的所有CREATE USER
。