本节介绍选项、系统变量和状态变量,这些选项、系统变量和状态变量validate_password
可用于配置和监视其操作。
要控制
validate_password
插件的激活,请使用此选项:
-
命令行格式 --validate-password[=value]
类型 枚举 默认值 ON
有效值 ON
OFF
FORCE
FORCE_PLUS_PERMANENT
此选项控制服务器
validate_password
在启动时如何加载插件。该值应该是可用于插件加载选项的值之一,如 第 5.5.1 节“安装和卸载插件”中所述。例如,--validate-password=FORCE_PLUS_PERMANENT
告诉服务器在启动时加载插件并防止它在服务器运行时被删除。此选项仅在
validate_password
插件先前已注册INSTALL PLUGIN
或加载时可用--plugin-load-add
。请参阅 第 6.4.3.1 节,“密码验证插件安装”。
如果validate_password
启用了插件,它会公开几个启用密码检查配置的系统变量:
mysql> SHOW VARIABLES LIKE 'validate_password%';
+--------------------------------------+--------+
| Variable_name | Value |
+--------------------------------------+--------+
| validate_password_dictionary_file | |
| validate_password_length | 8 |
| validate_password_mixed_case_count | 1 |
| validate_password_number_count | 1 |
| validate_password_policy | MEDIUM |
| validate_password_special_char_count | 1 |
+--------------------------------------+--------+
要更改检查密码的方式,您可以在服务器启动或运行时设置这些系统变量。下面的列表描述了每个变量的含义。
validate_password_dictionary_file
命令行格式 --validate-password-dictionary-file=file_name
系统变量 validate_password_dictionary_file
范围 全球的 动态(≥ 5.6.26) 是的 动态(≤ 5.6.25) 不 类型 文件名 validate_password
用于检查密码 的字典文件的路径名 。validate_password
除非已安装 ,否则此变量不可用 。默认情况下,此变量具有空值并且不执行字典检查。要进行字典检查,变量值必须为非空。如果文件被命名为相对路径,则它被解释为相对于服务器数据目录。文件内容应小写,每行一个字。内容被视为具有字符集
utf8
. 允许的最大文件大小为 1MB。对于密码检查时要使用的字典文件,密码策略必须设置为 2 (
STRONG
);参见validate_password_policy
系统变量的说明。假设这是真的,将长度为 4 到 100 的密码的每个子字符串与字典文件中的单词进行比较。任何匹配都会导致密码被拒绝。比较不区分大小写。对于
VALIDATE_PASSWORD_STRENGTH()
,根据所有策略检查密码,包括STRONG
,因此无论validate_password_policy
值如何,强度评估都包括字典检查。在 MySQL 5.6.26 之前,在服务器运行时对字典文件的更改需要重新启动服务器才能识别更改。从 MySQL 5.6.26 开始,
validate_password_dictionary_file
可以在运行时设置并且分配一个值会导致在不重启服务器的情况下读取命名文件。-
命令行格式 --validate-password-length=#
系统变量 validate_password_length
范围 全球的 动态的 是的 类型 整数 默认值 8
最小值 0
validate_password
要求密码具有 的最少字符数 。validate_password
除非已安装 ,否则此变量不可用 。validate_password_length
最小值是其他几个相关系统变量的函数 。 该值不能设置为小于此表达式的值:validate_password_number_count + validate_password_special_char_count + (2 * validate_password_mixed_case_count)
如果由于前面的约束而
validate_password
调整的值validate_password_length
,它会将消息写入错误日志。 validate_password_mixed_case_count
命令行格式 --validate-password-mixed-case-count=#
系统变量 validate_password_mixed_case_count
范围 全球的 动态的 是的 类型 整数 默认值 1
最小值 0
validate_password
如果密码策略为MEDIUM
或更强,则要求密码具有 的最小小写和大写字符数。validate_password
除非已安装 ,否则此变量不可用。对于给定的
validate_password_mixed_case_count
值,密码必须有那么多小写字符和那么多大写字符。validate_password_number_count
命令行格式 --validate-password-number-count=#
系统变量 validate_password_number_count
范围 全球的 动态的 是的 类型 整数 默认值 1
最小值 0
validate_password
如果密码策略为MEDIUM
或更强,则要求密码具有 的最小数字(数字)字符数 。validate_password
除非已安装 ,否则此变量不可用 。-
命令行格式 --validate-password-policy=value
系统变量 validate_password_policy
范围 全球的 动态的 是的 类型 枚举 默认值 1
有效值 0
1
2
由 强制执行的密码策略
validate_password
。validate_password
除非已安装 ,否则此变量不可用。validate_password_policy
可以使用数值 0、1、2 或相应的符号值LOW
,MEDIUM
,来指定 该 值STRONG
。下表描述了为每个策略执行的测试。对于长度测试,所需的长度是validate_password_length
系统变量的值。同样,其他测试所需的值由其他 变量给出。validate_password_
xxx
政策 进行的测试 0
或者LOW
长度 1
或者MEDIUM
长度; 数字、小写/大写和特殊字符 2
或者STRONG
长度; 数字、小写/大写和特殊字符;词典文件 validate_password_special_char_count
命令行格式 --validate-password-special-char-count=#
系统变量 validate_password_special_char_count
范围 全球的 动态的 是的 类型 整数 默认值 1
最小值 0
validate_password
如果密码策略为MEDIUM
或更强,则要求密码具有 的最小非字母数字字符数 。validate_password
除非已安装 ,否则此变量不可用 。
如果validate_password
启用了插件,它会公开提供操作信息的状态变量:
mysql> SHOW STATUS LIKE 'validate_password%';
+-----------------------------------------------+---------------------+
| Variable_name | Value |
+-----------------------------------------------+---------------------+
| validate_password_dictionary_file_last_parsed | 2015-06-29 11:08:51 |
| validate_password_dictionary_file_words_count | 1902 |
+-----------------------------------------------+---------------------+
下面的列表描述了每个状态变量的含义。
validate_password_dictionary_file_last_parsed
上次解析字典文件的时间。
这个变量是在 MySQL 5.6.26 中添加的。
validate_password_dictionary_file_words_count
从词典文件中读取的单词数。
这个变量是在 MySQL 5.6.26 中添加的。