禁止匿名用户是MySQL安全加固的首要措施,需通过SELECT查询识别User为空的账号,用DROP USER命令删除,并验证清除效果及连接安全性。
禁止匿名用户是 MySQL 安全加固中最基础也最关键的一步。默认安装的 MySQL 可能存在空用户名(即
'')的账号,这类匿名用户无需密码即可登录,一旦被利用,极易导致数据泄露或提权攻击。
以 root 或高权限账号登录 MySQL 后,执行以下命令查看所有用户:
SELECT User, Host FROM mysql.user;重点关注 User 列为空字符串('')的记录,例如:
| '' | localhost |
| '' | % |
这类就是匿名用户,必须清理。
确认后,逐条执行 DROP USER 删除(注意:MySQL 5.7+ 推荐用 DROP USER,不建议直接删表):
DROP USER ''@'localhost';如果提示“ERROR 1396 (HY000)”,说明该用户不存在,可跳过;若使用的是较老版本(如 5.1),可用以下方式安全清理:
再次运行 SELECT User, Host FROM mysql.user;,确保结果中不再出现空 User。同时建议做一次连接测试:
禁掉匿名用户只是起点,还需同步落实以下措施: