mysql默认用户安全吗_mysql默认安全风险分析

2次阅读

mysql默认配置极不安全,须人工加固:立即设置 root 强密码、删除匿名用户;绑定 bind-address=127.0.0.1 限制本地访问;禁用 FILE/SHUTDOWN 等高危权限;启用 ssl 加密通信 并开启日志审计。

mysql 默认用户安全吗_mysql 默认安全风险分析

MySQL 默认用户不安全。安装后自带的 root 空密码账号、匿名用户、test数据库 开放权限、全网 接口 监听等,默认配置几乎等于“开门迎客”。真正可用的安全状态,必须靠人工逐项加固。

root 空密码和匿名用户是最大突破口

mysql 安装 完成时,'root'@'localhost'通常无密码,部分版本还附带空用户名(''@'localhost')——这意味着只要能连上本地 MySQL 服务,无需任何凭证就能登录,并拥有最高权限。更危险的是,该匿名用户默认对 test 库有全部操作权,可创建大表耗尽磁盘、写入恶意数据,甚至配合 select …… INTO OUTFILE 导出系统文件。

  • 立即执行:ALTER USER 'root'@'localhost' IDENTIFIED BY '强密码';
  • 删除匿名用户:DROP USER ''@'localhost';
  • 刷新权限:FLUSH PRIVILEGES;

网络暴露面远超预期

默认配置中 bind-address 常为 0.0.0.0 或未设置,导致 MySQL 监听所有网卡 IP,包括公网接口。一旦 端口(默认 3306)被扫描到,攻击者即可发起暴力破解或利用已知漏洞(如 CVE-2012-2122)绕过认证。

  • 编辑 my.cnfmy.ini,强制限定为:bind-address = 127.0.0.1(仅本地)
  • 若需远程访问,必须搭配 防火墙 策略(如 iptables/ufw),只放行可信 IP 段
  • 禁用 skip-networking 以外的任何“图省事”配置

权限体系极易被滥用

默认用户不仅密码弱,权限也过度宽松。root 可执行 SHUTDOWNFILEPROCESS 等高危操作;普通业务账号若被赋予 GRANT OPTION 或跨库权限,可能横向提权或篡改系统表(如mysql.user)。

  • 检查高危权限:SELECT user,host,shutdown_priv,file_priv,process_priv FROM mysql.user;
  • 业务账号一律禁用FILESHUTDOWNGRANT OPTION
  • 按最小权限原则授权:GRANT SELECT,INSERT ON app_db.* TO 'app_user'@'10.10.20.%';

通信与日志长期裸奔

MySQL 默认不启用 SSL/TLS,所有账号密码、sql 语句 、返回结果均以明文传输,内网抓包即可还原完整业务逻辑;同时general_logslow_query_log默认关闭,无法追溯异常行为,攻击发生后难以取证。

  • 启用 SSL:在 [mysqld] 段配置 ssl-cassl-certssl-key 路径
  • 强制用户走 SSL:CREATE USER 'safe_user'@'%' require SSL;
  • 开启通用日志(临时审计用):SET GLOBAL general_log = ON;,日志路径需设在非 web 可访问目录
站长
版权声明:本站原创文章,由 站长 2025-12-21发表,共计1275字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
1a44ec70fbfb7ca70432d56d3e5ef742
text=ZqhQzanResources