10bet网址
MySQL 8.0参考手册
相关的文档10bet官方网站 下载本手册
PDF(美版)- 41.1 mb
PDF (A4)- 41.2 mb
PDF (RPM)- 39.8 mb
HTML下载(TGZ)- 9.5 mb
HTML下载(Zip)- 9.6 mb
HTML下载(RPM)- 8.1 mb
手册页(TGZ)- 260.6 kb
手册页(Zip)- 371.7 kb
信息(Gzip)- 3.9 mb
信息(邮政编码)- 3.9 mb
本手册节选

6.4.3.2密码验证选项和变量

介绍支持的系统变量和状态变量validate_password提供使其操作能够被配置和监视的功能。

密码验证组件系统变量

如果validate_password组件,它暴露了几个启用密码检查配置的系统变量:

mysql>显示变量validate_password.%;+--------------------------------------+--------+ | Variable_name |值  | +--------------------------------------+--------+ | validate_password。check_user_name | ON | | validate_password。Dictionary_file | | | validate_password。长度| 8 | | validate_password。Mixed_case_count | 1 | | validate_password。Number_count | 1 | | validate_password。policy | MEDIUM | | validate_password。special_char_count | 1  | +--------------------------------------+--------+

要更改检查密码的方式,可以在服务器启动时或运行时设置这些系统变量。下面的列表描述了每个变量的含义。

  • validate_password.check_user_name

    命令行格式 ——validate-password.check-user-name[={|在}]
    系统变量 validate_password.check_user_name
    范围 全球
    动态 是的
    SET_VAR提示应用 没有
    类型 布尔
    默认值

    是否validate_password将密码与当前会话的有效用户帐户的用户名部分进行比较,如果匹配则拒绝密码。此变量不可用,除非validate_password安装。

    默认情况下,validate_password.check_user_name启用。的值控制用户名的匹配validate_password.policy

    validate_password.check_user_name是启用的,它有这些效果:

    • 的所有上下文中都发生检查validate_password调用,其中包括使用诸如改变用户设置密码要更改当前用户的密码,并调用函数,如VALIDATE_PASSWORD_STRENGTH ()

    • 的值中获取用于比较的用户名用户()CURRENT_USER ()当前会话的函数。这意味着,拥有足够权限来设置另一个用户密码的用户可以将密码设置为该用户的名称,而不能将该用户的密码设置为执行该语句的用户的名称。例如,“根”@“localhost”可以设置密码为“杰弗里”@“localhost”“杰弗里。”,但不能设置密码为“根

    • 的用户名部分用户()CURRENT_USER ()使用函数值,而不是主机名部分。如果用户名为空,则不进行比较。

    • 如果密码与用户名或用户名的倒写相同,则会匹配并拒绝该密码。

    • 用户名匹配区分大小写。密码和用户名值以二进制字符串的形式逐字节进行比较。

    • 如果密码与用户名匹配,VALIDATE_PASSWORD_STRENGTH ()返回0,不管其他方式如何validate_password设置系统变量。

  • validate_password.dictionary_file

    命令行格式 ——validate-password.dictionary-file = file_name
    系统变量 validate_password.dictionary_file
    范围 全球
    动态 是的
    SET_VAR提示应用 没有
    类型 文件名称

    的字典文件的路径名validate_password用于检查密码。此变量不可用,除非validate_password安装。

    默认情况下,此变量为空值,并且不执行字典检查。要进行字典检查,变量值必须是非空的。如果文件命名为相对路径,则相对于服务器数据目录对其进行解释。文件内容应该是小写的,每行一个单词。内容被视为具有的字符集use utf8.允许的最大文件大小为1MB。

    对于密码检查时使用的字典文件,密码策略必须设置为2 (强大的);的描述validate_password.policy系统变量。假设这是真的,将长度为4到100的密码的每个子字符串与字典文件中的单词进行比较。任何匹配都会导致密码被拒绝。比较不区分大小写。

    VALIDATE_PASSWORD_STRENGTH (),根据所有策略检查密码,包括强大的,所以强度评估包括字典检查不管validate_password.policy价值。

    validate_password.dictionary_file可以在运行时设置,并且分配一个值将导致在不重新启动服务器的情况下读取指定的文件。

  • validate_password.length

    命令行格式 ——validate-password.length = #
    系统变量 validate_password.length
    范围 全球
    动态 是的
    SET_VAR提示应用 没有
    类型 整数
    默认值 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
    范围 全球
    动态 是的
    SET_VAR提示应用 没有
    类型 整数
    默认值 1
    最小值 0

    的小写和大写字符的最小数目validate_password如果密码策略为媒介或者更强。此变量不可用,除非validate_password安装。

    对于给定的validate_password.mixed_case_count取值时,密码必须包含一定数量的小写字符和一定数量的大写字符。

  • validate_password.number_count

    命令行格式 ——validate-password.number-count = #
    系统变量 validate_password.number_count
    范围 全球
    动态 是的
    SET_VAR提示应用 没有
    类型 整数
    默认值 1
    最小值 0

    的最小数字(数字)字符数validate_password如果密码策略为媒介或者更强。此变量不可用,除非validate_password安装。

  • validate_password.policy

    命令行格式 ——validate-password.policy =值
    系统变量 validate_password.policy
    范围 全球
    动态 是的
    SET_VAR提示应用 没有
    类型 枚举
    默认值 1
    有效值

    0

    1

    2

    强制的密码策略validate_password.此变量不可用,除非validate_password安装。

    validate_password.policy影响如何validate_password使用它的其他策略设置系统变量,除了根据用户名检查密码之外,这是由validate_password.check_user_name

    validate_password.policy值可以使用数值0、1、2或相应的符号值指定媒介强大的.下表描述了针对每个策略执行的测试。对于长度测试,所需的长度为validate_password.length系统变量。同样,其他测试的所需值由其他测试提供validate_password。xxx变量。

    政策 测试执行
    0 长度
    1媒介 长度;数字、小写/大写和特殊字符
    2强大的 长度;数字、小写/大写和特殊字符;字典文件
  • validate_password.special_char_count

    命令行格式 ——validate-password.special-char-count = #
    系统变量 validate_password.special_char_count
    范围 全球
    动态 是的
    SET_VAR提示应用 没有
    类型 整数
    默认值 1
    最小值 0

    的最小非字母数字字符数validate_password如果密码策略为媒介或者更强。此变量不可用,除非validate_password安装。

密码验证组件状态变量

如果validate_password组件时,它会公开提供操作信息的状态变量:

mysql>显示validate_password.%的状态;+-----------------------------------------------+---------------------+ | Variable_name |值  | +-----------------------------------------------+---------------------+ | validate_password。Dictionary_file_last_parsed | 2019-10-03 08:33:49 | | validate_password。dictionary_file_words_count | 1902  | +-----------------------------------------------+---------------------+

下面的列表描述了每个状态变量的含义。

密码验证插件选项
请注意

在MySQL 8.0中,validate_password插件被重新实现为validate_password组件。的validate_password插件已弃用;预计它将在MySQL的未来版本中被删除。因此,它的选项也被弃用,您应该期望它们也被删除。使用插件的MySQL安装应该转换为使用组件。看到第6.4.3.3节,“过渡到密码验证组件”

控制的激活validate_password插件,使用这个选项:

密码验证插件系统变量
请注意

在MySQL 8.0中,validate_password插件被重新实现为validate_password组件。的validate_password插件已弃用;预计它将在MySQL的未来版本中被删除。因此,它的系统变量也被弃用,您应该期望它们也被删除。的对应系统变量validate_password组件而不是;看到密码验证组件系统变量.使用插件的MySQL安装应该转换为使用组件。看到第6.4.3.3节,“过渡到密码验证组件”

密码验证插件状态变量
请注意

在MySQL 8.0中,validate_password插件被重新实现为validate_password组件。的validate_password插件已弃用;预计它将在MySQL的未来版本中被删除。因此,它的状态变量也被弃用;预计它会被移除。的对应状态变量validate_password组件;看到密码验证组件状态变量.使用插件的MySQL安装应该转换为使用组件。看到第6.4.3.3节,“过渡到密码验证组件”