账户与权限管理
- 禁用默认账户(如root远程登录)
- 遵循最小权限原则,按需分配用户权限
- 定期审计账户,清理无效或过期账户
密码策略强化
- 启用密码复杂度要求(长度、特殊字符)
- 设置密码过期周期和历史记录限制
- 禁止明文密码存储,使用
SHA-256或caching_sha2_password插件
网络与连接安全
- 限制MySQL监听IP(仅绑定内网或必要接口)
- 启用SSL/TLS加密通信
- 配置防火墙规则,限制访问来源IP
数据加密保护
- 对敏感字段使用
AES_ENCRYPT等函数加密 - 启用透明数据加密(TDE)保护表空间文件
- 备份数据时强制加密存储
审计与日志监控
- 开启通用查询日志和二进制日志
- 部署第三方审计工具(如Audit Plugin)
- 实时监控异常登录和SQL注入尝试
服务配置加固
- 禁用
LOAD DATA LOCAL等高风险功能 - 设置
secure_file_priv限制文件读写路径 - 关闭不必要的存储引擎和插件
防注入与输入过滤
- 使用预处理语句(Prepared Statements)
- 对应用层输入进行严格校验和转义
- 部署WAF拦截恶意SQL请求
补丁与版本管理
- 定期升级至最新稳定版本
- 订阅CVE公告,及时修复已知漏洞
- 避免使用已弃用的功能或语法
备份与灾难恢复
- 自动化加密备份并离线存储
- 定期测试备份文件可恢复性
- 制定RTO/RPO明确的恢复流程
操作系统层加固
- 以非root用户运行MySQL进程
- 限制操作系统文件权限(如
my.cnf) - 启用SELinux/AppArmor等安全模块