首页 游戏 软件 资讯 排行榜 专题
首页
数据库
mysql如何保护数据库不被外部攻击_mysql安全防护机制

mysql如何保护数据库不被外部攻击_mysql安全防护机制

热心网友
81
转载
2026-04-24

MySQL 默认3306端口暴露公网极危险,须绑定内网IP、防火墙限流、SSH隧道访问;禁用root@%等通配符账户;禁用skip-grant-tables;强制SSL并验证加密生效。

mysql如何保护数据库不被外部攻击_mysql安全防护机制

免费影视、动漫、音乐、游戏、小说资源长期稳定更新! 👉 点此立即查看 👈

MySQL 默认端口暴露在公网等于开门揖盗

把MySQL的默认3306端口直接暴露在公网上,无异于给整个数据库系统开了一扇没有守卫的大门。攻击者利用自动化工具,可以轻松扫描到这个端口,进而发起暴力破解,甚至利用像CVE-2012-2122这样的已知漏洞直接绕过身份验证。现实中的攻防数据很能说明问题:超过八成的MySQL数据泄露事件,起点往往就是一个暴露的3306端口,再加上一个脆弱的密码或者干脆是空密码账户。

所以,这件事没有商量余地,必须做到位:

  • 绑定内网地址:生产环境绝对禁止将MySQL绑定到0.0.0.0或公网IP。正确的做法是在配置文件中设置bind-address = 127.0.0.1,或者指定一个具体的内网IP(例如192.168.10.10)。
  • 防火墙严格管控:无论是使用服务器的iptables还是云平台的安全组,都必须严格限制对3306端口的访问,只允许来自可信来源IP的流量,默认拒绝所有INPUT方向的连接请求。
  • 远程管理走安全通道:如果确实需要从外部进行管理,务必通过跳板机或建立SSH隧道。一个典型的命令是:ssh -L 3307:127.0.0.1:3306 user@db-server,之后在本地连接localhost:3307即可,数据流全程加密。

root@% 这类通配符账户是最大安全隐患

MySQL的用户身份由'用户名'@'主机'两部分共同决定。其中,root@%这个配置意味着允许从世界上任何一台主机以最高权限的root身份登录——这简直是把服务器的钥匙直接挂在了门外。即便你设置了非常复杂的密码,这种配置也极大地扩大了攻击面,为撞库和权限提升攻击敞开了大门。

排查和清理工作刻不容缓:

  • 立即审计用户列表:登录数据库后,执行SELECT User, Host FROM mysql.user;,重点检查是否存在root@%admin@%,甚至是''@'%'(允许任意用户从任意主机登录)这类高危条目。
  • 果断删除高危账户:使用DROP USER 'root'@'%';这样的命令,坚决清理掉通配符主机的高权限账户。通常,只保留root@localhost用于本地管理就足够了。
  • 遵循最小权限原则:为具体的业务应用创建专属账户,并只授予其完成工作所必需的最小权限。例如,一个只读账号的授权命令可以是:GRANT SELECT ON mydb.* TO 'app_ro'@'192.168.10.%';。对于写入账号,额外增加INSERTUPDATEDELETE权限,但务必禁用FILEPROCESSSUPER这类高危权限。

skip-grant-tables 启用后根本没密码保护

skip-grant-tables这个配置项的本意是用于紧急情况下的密码重置。但问题在于,如果忘记关闭它并重启了MySQL服务,整个数据库的权限验证系统就会被完全绕过。此时,任何能够连接到数据库的客户端,都可以以任意用户身份执行任何SQL操作,包括删除所有数据。

如何确认和修复这个致命漏洞?

  • 检查配置文件:立即查看MySQL的主配置文件(通常是/etc/my.cnf/etc/mysql/mysql.conf.d/mysqld.cnf),如果发现存在skip-grant-tables这一行,必须立刻将其注释掉(在行首加#),然后重启服务:sudo systemctl restart mysql
  • 使用正确的密码重置方法:日常运维绝不应该依赖这个选项。重置密码应使用标准的SQL命令,例如在MySQL 5.7及以上版本使用ALTER USER 'root'@'localhost' IDENTIFIED BY 'newpass';
  • 紧急情况下的安全操作:如果已经启用了该选项导致无法正常登录,在重启服务时,应同时加上--skip-grant-tables --skip-networking参数。这样,MySQL会跳过权限验证,但同时禁用网络连接,只允许通过本地socket连接,完成密码修改后应立即退出并以正常模式重启。

SSL 加密不是“开了就行”,得验证是否真生效

这是一个非常普遍的误区:很多人以为在服务端配置了ssl-cassl-certssl-key并重启后,通信就自动加密了。事实并非如此,因为MySQL默认并不强制客户端使用SSL连接。这就导致攻击者依然可以在中间人位置,轻松截获明文的账号、密码以及所有的查询内容。

真正的安全,需要服务端和客户端组合配置才能生效:

  • 服务端强制要求SSL:对特定用户,可以使用ALTER USER 'app_user'@'192.168.10.%' REQUIRE SSL;命令。对于MySQL 8.0.19及以上版本,还可以设置全局参数require_secure_transport = ON,要求所有连接都必须安全。
  • 客户端显式指定加密模式:在连接时,客户端必须明确要求使用SSL。例如使用命令行连接时:mysql -u app_user -p --ssl-mode=REQUIRED -h db.example.com。否则,客户端驱动很可能会静默降级到非加密连接。
  • 最终验证加密状态:连接建立后,执行一个简单的查询来确认:SHOW STATUS LIKE 'Ssl_cipher';。只有当返回结果是一个非空值(例如AES256-SHA)时,才能确定当前的连接通道是经过加密的。

话说回来,实际环境中最容易出纰漏的,往往是权限粒度与网络隔离之间的配合。仅仅删除root@%账户还不够,还需要确保应用服务器只能访问其对应的业务数据库,并且对数据库主机本身的出方向流量也要进行限制(例如禁止其主动访问外网,以防恶意UDF或日志外传)。数据库安全从来不是打开或关闭一两个功能开关那么简单,它关乎从网络到账户、从权限到加密的每一个连接点的持续收敛与加固。

来源:https://www.php.cn/faq/2342196.html
免责声明: 游乐网为非赢利性网站,所展示的游戏/软件/文章内容均来自于互联网或第三方用户上传分享,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系youleyoucom@outlook.com。

相关攻略

mysql如何保护数据库不被外部攻击_mysql安全防护机制
数据库
mysql如何保护数据库不被外部攻击_mysql安全防护机制

MySQL 默认3306端口暴露公网极危险,须绑定内网IP、防火墙限流、SSH隧道访问;禁用root@%等通配符账户;禁用skip-grant-tables;强制SSL并验证加密生效。 MySQL 默认端口暴露在公网等于开门揖盗 把MySQL的默认3306端口直接暴露在公网上,无异于给整个数据库系统

热心网友
04.24
专访全国政协委员齐向东:AI最大风险是制造“超人”
科技数码
专访全国政协委员齐向东:AI最大风险是制造“超人”

2026年是“十五五”开局之年,AI、具身智能等科技的迅猛发展,让中国的未来更具想象力。在今年全国两会即将召开之际,第十四届全国政协委员、全国工商联副主席、奇安信科技集团董事长齐向东接受红星新闻采访

热心网友
03.01
天融信回应:暂未向字节跳动Seedance 2.0提供安全防护
科技数码
天融信回应:暂未向字节跳动Seedance 2.0提供安全防护

有投资者向天融信提问,请问公司有为子节跳动Seedance 2 0提供安全防护吗?2月27日,天融信在互动平台回答表示,公司暂未向字节跳动Seedance 2 0提供安全防护,公司可为客户提供大模型

热心网友
02.27
快手遭攻击一度瘫痪:平台安全防御如何破局?
科技数码
快手遭攻击一度瘫痪:平台安全防御如何破局?

多个直播间短时间内涌入大量露骨色情内容,昨晚快手平台突发大规模内容安全事件引发关注。对此,快手方面回应称,平台遭到“黑灰产”攻击,目前已紧急处理修复中。业内技术人士分析,这极有可能是有组织、有预谋的

热心网友
12.23
币安官网App:安全下载与交易指南
web3.0
币安官网App:安全下载与交易指南

安全访问币安平台是数字资产交易的关键。本文详述了安全访问币安平台的方式与官方APP的下载流程,强调通过正规途径访问币安平台,务必从官方渠道下载APP,以保障账户安全。同时,介绍了币安账户注册流程和APP核心功能,助您安全开启数字资产交易之旅,并建议关注其他平台。

热心网友
12.13

最新APP

宝宝过生日
宝宝过生日
应用辅助 04-07
台球世界
台球世界
体育竞技 04-07
解绳子
解绳子
休闲益智 04-07
骑兵冲突
骑兵冲突
棋牌策略 04-07
三国真龙传
三国真龙传
角色扮演 04-07

热门推荐

蛙漫在线阅读入口在哪-蛙漫在线阅读入口怎么找
手机教程
蛙漫在线阅读入口在哪-蛙漫在线阅读入口怎么找

在网络信息的浩瀚海洋中,热门文章总是吸引着无数人的目光 而蛙漫,这个备受关注的平台,其在线阅读入口自然成了许多读者探寻的焦点。怎么找到它,进去之后又能看到什么?咱们这就来聊聊。 蛙漫的魅力所在 简单来说,蛙漫的魅力在于它的“全”。这里就像一个内容集市,汇聚了各类精彩文章,题材包罗万象。你想看情节跌宕

热心网友
04.24
指乎如何注销账号-指乎怎样注销账户
手机教程
指乎如何注销账号-指乎怎样注销账户

指乎账号注销全流程详解 决定告别指乎,准备注销账号?这个操作确实需要谨慎,毕竟一旦完成,所有数据都将无法找回。下面,我们就来把注销账号的完整路径和关键细节,给你理得清清楚楚。 第一步:进入个人中心 首先,打开指乎App。在主界面底部导航栏,找到那个醒目的“我的”标签,点击进入。这里是你管理个人账号一

热心网友
04.24
铁路12306车票改签手续费怎么算-铁路12306车票改签手续费规定
手机教程
铁路12306车票改签手续费怎么算-铁路12306车票改签手续费规定

出行计划有变?一文读懂12306车票改签手续费 行程临时调整,车票改签是常事。但改签手续费怎么算,常常让人摸不着头脑。今天,我们就来把铁路12306的改签收费规则彻底讲清楚,让你下次改签时心里有本明白账,既不错过时机,也不花冤枉钱。 开车前48小时以上改签 如果你的行程变动得早,这可是最理想的改签窗

热心网友
04.24
考研必题库app有什么作用-考研必题库app的用途是什么
手机教程
考研必题库app有什么作用-考研必题库app的用途是什么

考研备考的得力助手:考研必题库App深度解析 在考研这场持久战中,选对工具往往能让复习效率倍增。今天要聊的这款考研必题库App,正是许多备考学子口中那个能“事半功倍”的得力助手。 海量真题:备考的核心资源库 说到备考,什么资源最金贵?历年真题绝对排在首位。这款App的核心优势之一,便是汇聚了各大学科

热心网友
04.24
无名骑士团各职业符文如何选择-无名骑士团各职业符文怎样挑选
游戏攻略
无名骑士团各职业符文如何选择-无名骑士团各职业符文怎样挑选

在无名骑士团这款游戏中,符文的选择对于各职业的发展至关重要 玩过《无名骑士团》的朋友都知道,职业强不强,一半看操作,另一半就得看符文怎么搭。一套合理的符文组合,往往能让你角色的战斗力产生质变,无论是刷本还是PK,都能更加得心应手。 战士职业符文选择 作为团队前排的绝对核心,战士的定位非常明确:既要扛

热心网友
04.24