一、用户权限管理规范
数据库主机的首要安全措施是建立严格的用户权限体系。应禁用 root 用户远程访问功能,通过以下步骤创建专用运维账号:
- 使用
CREATE USER
命令创建带指定 IP 白名单的用户 - 通过
GRANT
语句授予最小必要权限 - 配置密码复杂度策略(长度≥12,包含大小写+数字+特殊字符)
定期执行 SELECT User,Host FROM mysql.user
审查账户清单,及时删除测试账号和过期权限。
二、网络隔离与访问控制
通过多层网络防护实现纵深防御:
- 使用防火墙限制 3306 端口仅允许应用服务器 IP 段访问
- 修改默认监听端口(如改为 3307)降低扫描风险
- 配置
bind-address
参数限定数据库监听网卡
# 开放新端口 firewall-cmd --permanent --add-port=3307/tcp # 限制源IP firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.1.0/24" port protocol="tcp" port="3307" accept'
三、数据库服务标识配置
修改默认 MySQL 实例标识防止信息泄露:
- 在 my.cnf 配置文件中设置
server-id
- 禁用版本信息显示参数
show_compatibility_56
- 配置主机名解析策略避免 DNS 反查延迟
四、审计与监控机制
建立完整的安全审计体系:
- 启用二进制日志记录所有 DDL 操作
- 配置 fail2ban 防御暴力破解
- 设置登录失败锁定策略(max_connect_errors=10)
建议每月执行安全配置审查,使用 mysql_secure_installation
工具验证基础配置。
通过四层防护体系的叠加配置,可有效降低数据库主机的安全风险。实际部署时应遵循最小权限原则,结合网络层和应用层的安全措施形成纵深防御。