mysql 5.7密码策略和安装密码校验插件validate_password
当执行sql:SHOW VARIABLES LIKE 'validate_password%';提示empty,说明没有安装密码插件
1、查看当前mysql安装的插件信息
mysql> show plugins;
2、要使服务器可用,插件库文件必须位于MySQL插件目录中(由plugin_dir系统变量命名的目录)。如果需要,通过在服务器启动时设置plugin_dir的值来配置插件目录位置。
mysql> show variables like
'plugin_dir'
;
3、插件库的文件名是validate_password.文件名后缀根据平台的不同而不同(例如.so对于Unix和类Unix系统,.dll对于Windows)。要在服务器启动时加载插件,可以使用--plugin-load-add选项来命名包含它的库文件。使用这种插件加载方法,必须在每次服务器启动时提供该选项:
[mysqld]
plugin-load-add=validate_password.dll
#服务器在启动时加载插件,并防止在服务器运行时删除插件。
validate-password=FORCE_PLUS_PERMANENT
4、修改my.ini之后,重启服务器以使新设置生效。或者,要在运行时注册插件,可以使用以下语句(根据需要调整.so后缀):
mysql> INSTALL PLUGIN validate_password SONAME
'validate_password.dll'
;
validate_password_policy:密码安全策略,默认MEDIUM策略:0表示只需要满足长度,1表示满足长度+数字+大小写+特殊字符
策略 |
检查规则 |
0 or LOW |
Length |
1 or MEDIUM |
Length; numeric, lowercase/uppercase, and special characters |
2 or STRONG |
Length; numeric, lowercase/uppercase, and special characters; dictionary file |
validate_password_dictionary_file:密码策略文件,策略为STRONG才需要
validate_password_length:密码最少长度
validate_password_mixed_case_count:大小写字符长度,至少1个
validate_password_number_count :数字至个1个
validate_password_special_char_count:特殊字符至少1个
所以默认MEDIUM即可(长度=2*大小写+特殊字符+数字),设置语句:
set global validate_password_mixed_case_count=5;设置大小写至少5个
set global validate_password_special_char_count=3;设置特殊字符至少3个
表示设置密码长度至少14位=至少10位大小写+至少3位特殊字符+至少1位数字
6、设置好密码策略之后,开始新增账户
flush privileges;
create user 'soft'@'localhost' identified by 'QWErtQWErt!@#3';
flush privileges;