的validate_password
插件用于测试密码和提高安全性。该插件公开了一组系统变量,使您能够定义密码策略。
这个插件实现了两个功能:
的validate_password
插件提供三个级别的密码检查:低
,媒介
,强大的
.默认值是媒介
;控制的validate_password_policy
配置选项。这些策略执行越来越严格的密码测试。
的
低
策略只测试密码长度。密码长度至少8个字符。的
媒介
增加了密码必须包含至少1个数字字符、1个小写字符、1个大写字符和1个特殊字符(非字母数字)的条件。的
强大的
策略添加了一个条件,长度为4或更长的密码子字符串不能匹配字典文件中的单词(如果指定了的话)。
此外,validate_password
插件可以拒绝与当前会话有效用户帐户的用户名部分匹配的密码,正向或反向。要启用此功能,您必须启用validate_password_check_user_name
系统变量。
安装和配置密码验证插件:
将这些选项添加到
(mysqld)
选项组的MySQL配置文件(/etc/my.cnf
):plugin-load-add = validate_password.sovalidate-password = FORCE_PLUS_PERMANENTvalidate_password_policy =媒介validate_password_check_user_name = 1
plugin-load-add = validate_password.so
加载
validate_password.so
每次服务器启动时的插件库。validate-password = FORCE_PLUS_PERMANENT
防止服务器在没有密码验证插件的情况下运行,如果插件没有初始化成功,服务器启动将失败。
validate_password_policy =媒介
长度至少8个字符,包含1个数字字符、1个小写字符、1个大写字符和1个特殊字符(非字母数字)。
媒介
是默认设置。validate_password_check_user_name = 1
拒绝与当前会话有效用户帐户的用户名部分相匹配的密码(正向或反向)。
要验证插件安装,请重新启动服务器并检查
INFORMATION_SCHEMA。插件
表格或使用显示插件
声明:Shell > systemctl restart mysqld
shell> cd /usr/local/mysql shell> bin/mysqladmin -u root -p version输入password:(在这里输入root密码)
从INFORMATION_SCHEMA中选择PLUGIN_NAME, PLUGIN_STATUS。PLUGIN_NAME像'validate%';+-------------------+---------------+ | PLUGIN_NAME | PLUGIN_STATUS | +-------------------+---------------+ | validate_password |活跃 | +-------------------+---------------+
为了验证密码验证插件是否正常工作,尝试创建一个密码不符合要求的用户:
创建用户bob。smith'@'localhost' IDENTIFIED BY 'abc';错误1819 (HY000):您的密码不符合当前的策略要求
有关密码验证插件的更多信息,请参见密码验证插件.