MySQL数据库安全配置核心指南
MySQL数据库安全配置的核心设定包括以下关键措施,结合行业实践进行标准化实施:
一、身份认证与权限控制
-
禁用匿名账户
安装后立即删除默认匿名账户(''@'localhost'
),避免未授权访问。执行:DROP USER ''@'localhost';
-
Root账户强化
- 修改默认root用户名:
RENAME USER root TO new_admin_name;
- 禁止root远程登录:限定
host
为localhost
- 设置高强度密码:长度≥14字符,含大小写字母/数字/符号
- 修改默认root用户名:
-
最小权限原则
- 按需创建专用账户:
CREATE USER 'app_user'@'192.168.%' IDENTIFIED BY 'StrongPass!';
- 精准授权:仅授予必需权限(如
SELECT, INSERT
)GRANT SELECT, INSERT ON dbname.* TO 'app_user'@'192.168.%';
- 禁用高危权限:
FILE
,PROCESS
,SUPER
,SHUTDOWN
等
- 按需创建专用账户:
二、密码策略加固
- 启用密码验证插件
配置文件添加:plugin-load-add=validate_password.so validate_password_length=14 validate_password_mixed_case_count=1 validate_password_number_count=1 validate_password_special_char_count=1 validate_password_policy=MEDIUM
- 密码有效期管理
设置90天强制更新:SET GLOBAL default_password_lifetime = 90;
三、网络安全配置
- 访问IP白名单
- 防火墙限制3306端口访问源IP
- 数据库账户绑定客户端IP:
'user'@'192.168.1.100'
- 修改默认端口
避免扫描攻击:port = 3307
(配置文件) - 禁用远程root登录
UPDATE mysql.user SET Host='localhost' WHERE User='root';
四、数据与日志安全
-
删除测试数据库
DROP DATABASE test;
-
启用二进制日志审计
配置文件启用:log_bin = /var/log/mysql/mysql-bin.log expire_logs_days = 7
-
定期备份机制
- 逻辑备份:
mysqldump --single-transaction
(避免锁表) - 物理备份:
xtrabackup
(大数据量场景)
- 逻辑备份:
五、服务运行安全
- 专用低权限账户运行
配置文件指定:user = mysql
- 关闭不必要的功能
skip-symbolic-links # 禁用符号链接 local-infile=0 # 禁用本地文件加载
六、后期维护规范
- 定期安全审计
SELECT user, host FROM mysql.user; -- 检查异常账户 SHOW GRANTS FOR 'user'@'host'; -- 验证权限范围
- 及时更新补丁
监控CVE漏洞公告,保持版本更新
关键提醒:生产环境配置变更需通过
FLUSH PRIVILEGES;
生效,修改后务必验证服务状态。完整配置流程参考:MySQL安全加固指南。