【MySQL运维技术分享】密码复杂度与登录次数限制插件配置说明

TangLu MySQL 2025-02-20 989 0

一、MySQL用户密码复杂度的配置

在MySQL中通过validate_password插件实现对用户密码复杂度进行限制,插件支持LOW(0)、MEDIUM(1)、STRONG(2)三个级别,每个级别可以实现不同的密码复杂度要求: 

· 0(LOW):只需要满足长度要求

· 1(MEDIUM):需同时满足长度、数字、大小写、特殊字符相关要求,默认使用该级别

· 2(STRONG):需同时满足长度、数字、大小写、特殊字符与字典文件的相关要求(字典出现的字符都不可以作为密码的一部分)


1、安装validate_password插件

需要MySQL 5.6或以上版本才支持。用户密码复杂级别分为,默认为1

install plugin validate_password soname 'validate_password.so';


2、验证插件安装结果

#查看插件
show plugins;

#查看插件相关参数
show variables like '%validate%';

mysql_plugin1.png


3、validate_password插件参数说明

set global validate_password_check_user_name=OFF        #用户名是否允许作为密码的一部分,OFF代表允许
set global validate_password_dictionary_file='/path/to/dictionary.txt'  #密码字典文件的路径,字典中的密码不允许被设置
set global validate_password_length=8             #密码长度
set global validate_password_mixed_case_count=1     #密码是否需要大小写混合
set global validate_password_number_count=1       #密码需要包含至少1个数字
set global validate_password_policy=MEDIUM       #密码复杂度级别
set global validate_password_special_char_count=1    #密码需要包含至少1个特殊字符


二、MySQL 登录次数限制配置

在MySQL中通过connection_control插件控制用户登录次数,可以防止暴力破解,可增加最小延迟时间

1、安装connection_control插件

install plugin connection_control soname 'connection_control.so';


2、验证插件安装结果

#查看安装是否成功
show plugins;

#查看插件相关配置
show variables like "%connection_control%";


3、connection_control插件参数说明

set global connection_control_failed_connections_threshold=10;        #连续登录失败次数
set global connection_control_min_connection_delay=60000;             #达到限制后被锁定的时间,单位为毫秒
set global connection_control_max_connection_delay=3600000;           #失败尝试次数增加后被锁定时间也会逐渐增加,这里设置锁定最大值,单位为毫秒



评论