的validate_password
组件用于测试用户指定的密码并提高安全性。该组件公开了一组系统变量,使您能够定义密码策略。
该组件实现了两个功能:
在指定以明文值提供的密码的语句中,组件将根据当前密码策略检查密码,如果密码较弱,则拒绝该密码。这会影响
改变用户
,创建用户
,设置密码
语句。的
VALIDATE_PASSWORD_STRENGTH ()
SQL函数评估潜在密码的强度。该函数接受一个password参数,并返回一个从0(弱)到100(强)的整数。
的validate_password
组件提供三种级别的密码检查:低
,媒介
,强大的
.默认为媒介
;由validate_password.policy
系统变量。策略执行越来越严格的密码测试。
的
低
策略只测试密码长度。密码长度至少为8个字符。要更改此长度,请执行modifyvalidate_password.length
.的
媒介
策略增加了密码必须包含至少1个数字字符、1个小写字符、1个大写字符和1个特殊字符(非字母数字)的条件。要更改这些值,请执行modifyvalidate_password.number_count
,validate_password.mixed_case_count
,validate_password.special_char_count
.的
强大的
策略添加了一个条件,即长度为4或以上的密码子字符串不能与字典文件中的单词匹配(如果已经指定了)。要指定字典文件,请修改validate_password.dictionary_file
.
此外,validate_password
组件可以拒绝与当前会话的有效用户帐户的用户名部分匹配的密码,不管是正向的还是反向的。为了提供对这种能力的控制,validate_password
公开了一个validate_password.check_user_name
系统变量,默认启用。
安装和配置密码验证组件:
确保
validate_password
组件库文件位于MySQL插件目录下。Shell > CD /path/to/mysql/lib/plugin/ Shell > ls component_v* component_validate_password.so
确保
plugin_dir
设置到服务器的MySQL插件目录。mysql> SELECT+--------------------------------------------+ | @@ plugin_dir | +--------------------------------------------+ | / 路径/ / mysql / lib /插件 / | +--------------------------------------------+
安装
validate_password
组件使用安装组件
声明:mysql> INSTALL COMPONENT 'file://component_validate_password';
组件安装是一次性操作,不需要在每次服务器启动时执行。
安装组件
加载组件,并将其注册到10bet靠谱mysql.component
在后续服务器启动期间加载系统表。的下面添加这些选项
(mysqld)
选项组在MySQL配置文件(/etc/my.cnf
),以便根据需要进行调整。本部署使用默认值。validate_password.policy = 1validate_password.length = 8validate_password.number_count = 1validate_password.mixed_case_count = 1validate_password.special_char_count = 1validate_password.check_user_name = 1
validate_password.policy = 1
强制的密码策略
validate_password
.取值为1媒介
.默认情况下,媒介
策略指定密码长度至少为8位字符,包含至少1个数字字符、1个小写字符、1个大写字符和1个特殊字符(非字母数字)。1 (媒介
)为默认设置。validate_password.length = 8
所需要的最小字符数
validate_password
需要密码。validate_password.number_count = 1
所需要的小写和大写字符的最小数目
validate_password
如果密码策略为,则要求密码为媒介
或者更强。validate_password.mixed_case_count = 1
允许使用的最小数字(数字)字符数
validate_password
如果密码策略为,则要求密码为媒介
或者更强。validate_password.special_char_count = 1
满足的非字母数字字符的最小数目
validate_password
如果密码策略为,则要求密码为媒介
或者更强。validate_password.check_user_name = 1
拒绝与当前会话的有效用户帐户的用户名部分匹配的密码(向前或反向)。
请注意validate_password.dictionary_file
在此部署中不使用。默认情况下,该变量为空值,不执行字典检查。对于密码检查时使用的字典文件,密码策略必须设置为2 (STRONG);的描述validate_password.policy
系统变量获取更多信息。如果需要验证组件是否安装成功,可查询
10bet靠谱mysql.component
表:cd /usr/local/mysql shell> bin/mysqladmin -u root -p version输入password:(此处输入root密码)
SELECT * FROM mysql.c10bet靠谱omponent;+--------------+--------------------+------------------------------------+ | component_id | component_group_id | component_urn | +--------------+--------------------+------------------------------------+ | 1 | 1 |文件:/ / component_validate_password | +--------------+--------------------+------------------------------------+
要验证密码验证组件是否工作,请尝试创建一个密码不符合要求的用户:
创建用户bobsmith'@'localhost' IDENTIFIED BY 'abc';错误1819 (HY000):您的密码不满足当前的策略要求
该政策validate_password
组件实现对生成的密码没有影响。的目的validate_password
政策是有帮助的人类创建更好的密码。
有关的更多信息validate_password
组件,请参阅密码验证组件.