MySQL 身份鉴别有效性检查与安全加固指南
数据库安全的核心在于身份鉴别。在日常运维中,开发人员往往容易忽略这一环节,导致潜在的安全风险。本文将以 MySQL 5.7 为例,通过 root 用户权限,介绍如何验证身份鉴别的有效性并提供相应的加固方案。
核心检查项
在实施加固前,首先需要确认当前配置是否符合安全基线。
1. 确保用户标识唯一性
检查授权的用户是否唯一,避免重复账户带来的管理混乱:
SELECT USER, HOST FROM mysql.user;
2. 验证密码加密插件
确认用户使用的身份验证插件是否包含 *_password 类型(如 mysql_native_password):
SELECT USER, HOST, PLUGIN FROM mysql.user;
3. 排查空口令用户
检查 authentication_string 字段是否存在空值,空口令是严重的安全隐患:
SELECT USER, HOST, PLUGIN, authentication_string FROM mysql.user;
4. 启用口令复杂度校验
确认 validate_password 插件是否已加载。如果查询结果为空,说明未启用该插件:
SHOW VARIABLES LIKE 'validate%';
5. 设置口令有效期
默认情况下口令永不过期,建议检查并设置有效期:
SHOW VARIABLES LIKE '%default_password_lifetime%';
6. 限制登录失败尝试次数
防止暴力破解,需确认是否限制了失败连接数。若为空则代表无限制:
SHOW VARIABLES LIKE '%connection-control-failed-connections-threshold%';
7. 设置锁定最小时长
当失败次数超过阈值时,应设置锁定的最小延迟时间,否则可能永不锁定:
SHOW VARIABLES LIKE '%connection-control-min-connection-delay%';


