除非安装了相应的服务器端插件,否则这些变量不可用
- authentication_ldap_sasl用于名称格式为- authentication_ldap_sasl_的系统变量- xxx
- authentication_ldap_simple用于名称格式为- authentication_ldap_simple_的系统变量- xxx
表 8.28 身份验证插件系统变量摘要
- authentication_kerberos_service_key_tab- 命令行格式 - --authentication-kerberos-service-key-tab=file_name- 系统变量 - authentication_kerberos_service_key_tab- 范围 - 全局 - 动态 - 否 - SET_VAR提示适用- 否 - 类型 - 文件名 - 默认值 - datadir/mysql.keytab- 包含用于验证从客户端接收的 MySQL 服务票证的 Kerberos 服务密钥的服务器端密钥表 (“keytab”) 文件的名称。文件名应指定为绝对路径名。如果未设置此变量,则默认值为数据目录中的 - mysql.keytab。- 该文件必须存在且包含服务主体名称 (SPN) 的有效密钥,否则将无法验证客户端。 (SPN 和相同的密钥也必须在 Kerberos 服务器中创建。)该文件可能包含多个服务主体名称及其各自的密钥组合。 - 该文件必须由 Kerberos 服务器管理员生成,并复制到 MySQL 服务器可以访问的位置。可以使用以下命令验证该文件以确保其正确且已正确复制 - klist -k file_name- 有关 keytab 文件的信息,请参阅 https://web.mit.edu/kerberos/krb5-latest/doc/basic/keytab_def.html. 
- authentication_kerberos_service_principal- 命令行格式 - --authentication-kerberos-service-principal=name- 系统变量 - authentication_kerberos_service_principal- 范围 - 全局 - 动态 - 是 - SET_VAR提示适用- 否 - 类型 - 字符串 - 默认值 - mysql/host_name@realm_name- MySQL 服务器发送给客户端的 Kerberos 服务主体名称 (SPN)。 - 该值由服务名称( - mysql)、主机名和领域名称组成。默认值为- mysql/。服务主体名称中的领域使能够检索精确的服务密钥。- host_name@- realm_name- 若要使用非默认值,请使用相同的格式设置该值。例如,若要使用 - krbauth.example.com的主机名和- MYSQL.LOCAL的领域,请将- authentication_kerberos_service_principal设置为- mysql/krbauth.example.com@MYSQL.LOCAL。- 服务主体名称和服务密钥必须已存在于 KDC 服务器管理的数据库中。 - 可能存在仅在领域名称上不同的服务主体名称。 
- authentication_ldap_sasl_auth_method_name- 命令行格式 - --authentication-ldap-sasl-auth-method-name=value- 系统变量 - authentication_ldap_sasl_auth_method_name- 范围 - 全局 - 动态 - 是 - SET_VAR提示适用- 否 - 类型 - 字符串 - 默认值 - SCRAM-SHA-1- 有效值 - SCRAM-SHA-1- SCRAM-SHA-256- GSSAPI- 对于 SASL LDAP 身份验证,身份验证方法名称。身份验证插件和 LDAP 服务器之间的通信将根据此身份验证方法进行,以确保密码安全性。 - 允许这些身份验证方法值 - SCRAM-SHA-1:使用 SASL 质询-应答机制。- 客户端 - authentication_ldap_sasl_client插件使用密码与 SASL 服务器通信,以创建质询并获取 SASL 请求缓冲区,然后将此缓冲区传递给服务器端- authentication_ldap_sasl插件。客户端和服务器端 SASL LDAP 插件使用 SASL 消息在 LDAP 协议内安全地传输凭据,以避免在 MySQL 客户端和服务器之间发送明文密码。
- SCRAM-SHA-256:使用 SASL 质询-应答机制。- 此方法类似于 - SCRAM-SHA-1,但更安全。它需要使用 Cyrus SASL 2.1.27 或更高版本构建的 OpenLDAP 服务器。
- GSSAPI:使用 Kerberos,一种无密码且基于票证的协议。- GSSAPI/Kerberos 仅在 Linux 上作为 MySQL 客户端和服务器的身份验证方法受支持。它在 Linux 环境中非常有用,在这些环境中,应用程序使用 Microsoft Active Directory 访问 LDAP,默认情况下启用了 Kerberos。 - 客户端 - authentication_ldap_sasl_client插件使用 Kerberos 中的票证授予票证 (TGT) 获取服务票证,但不直接使用 LDAP 服务。服务器端- authentication_ldap_sasl插件在客户端插件和 LDAP 服务器之间路由 Kerberos 消息。使用由此获得的凭据,服务器端插件随后与 LDAP 服务器通信以解释 LDAP 身份验证消息并检索 LDAP 组。
 
- authentication_ldap_sasl_bind_base_dn- 命令行格式 - --authentication-ldap-sasl-bind-base-dn=value- 系统变量 - authentication_ldap_sasl_bind_base_dn- 范围 - 全局 - 动态 - 是 - SET_VAR提示适用- 否 - 类型 - 字符串 - 默认值 - NULL- 对于 SASL LDAP 身份验证,基本可辨别名称 (DN)。此变量可用于通过将搜索锚定在搜索树中的某个位置(“base”)来限制搜索范围。 - 假设一组 LDAP 用户条目中的每个成员都具有以下形式 - uid=user_name,ou=People,dc=example,dc=com- 而另一组 LDAP 用户条目中的每个成员都具有以下形式 - uid=user_name,ou=Admin,dc=example,dc=com- 那么对于不同的基本 DN 值,搜索的工作方式如下 - 如果基本 DN 为 - ou=People,dc=example,dc=com:搜索仅在第一组中查找用户条目。
- 如果基本 DN 为 - ou=Admin,dc=example,dc=com:搜索仅在第二组中查找用户条目。
- 如果基本 DN 为 - ou=dc=example,dc=com:搜索在第一组或第二组中查找用户条目。
 - 一般来说,更具体的基 DN 值会导致更快的搜索,因为它们会更多地限制搜索范围。 
- authentication_ldap_sasl_bind_root_dn- 命令行格式 - --authentication-ldap-sasl-bind-root-dn=value- 系统变量 - authentication_ldap_sasl_bind_root_dn- 范围 - 全局 - 动态 - 是 - SET_VAR提示适用- 否 - 类型 - 字符串 - 默认值 - NULL- 对于 SASL LDAP 身份验证,根可辨别名称 (DN)。此变量与 - authentication_ldap_sasl_bind_root_pwd结合使用,作为向 LDAP 服务器进行身份验证以执行搜索的凭据。身份验证使用一个或两个 LDAP 绑定操作,具体取决于 MySQL 帐户是否指定了 LDAP 用户 DN- 如果帐户未指定用户 DN: - authentication_ldap_sasl使用- authentication_ldap_sasl_bind_root_dn和- authentication_ldap_sasl_bind_root_pwd执行初始 LDAP 绑定。(默认情况下,这两个值都为空,因此如果没有设置它们,LDAP 服务器必须允许匿名连接。)生成的绑定 LDAP 句柄用于根据客户端用户名搜索用户 DN。- authentication_ldap_sasl使用用户 DN 和客户端提供的密码执行第二个绑定。
- 如果帐户确实指定了用户 DN:在这种情况下,第一个绑定操作是不必要的。 - authentication_ldap_sasl使用用户 DN 和客户端提供的密码执行单个绑定。这比 MySQL 帐户未指定 LDAP 用户 DN 时的速度更快。
 
- authentication_ldap_sasl_bind_root_pwd- 命令行格式 - --authentication-ldap-sasl-bind-root-pwd=value- 系统变量 - authentication_ldap_sasl_bind_root_pwd- 范围 - 全局 - 动态 - 是 - SET_VAR提示适用- 否 - 类型 - 字符串 - 默认值 - NULL- 对于 SASL LDAP 身份验证,根可辨别名称的密码。此变量与 - authentication_ldap_sasl_bind_root_dn结合使用。请参阅该变量的描述。
- authentication_ldap_sasl_ca_path- 命令行格式 - --authentication-ldap-sasl-ca-path=value- 系统变量 - authentication_ldap_sasl_ca_path- 范围 - 全局 - 动态 - 是 - SET_VAR提示适用- 否 - 类型 - 字符串 - 默认值 - NULL- 对于 SASL LDAP 身份验证,证书颁发机构文件的绝对路径。如果希望身份验证插件执行 LDAP 服务器证书验证,请指定此文件。 注意- 除了将 - authentication_ldap_sasl_ca_path变量设置为文件名之外,您还必须将适当的证书颁发机构证书添加到文件中,并启用- authentication_ldap_sasl_tls系统变量。这些变量可以设置为覆盖默认的 OpenLDAP TLS 配置;请参阅 LDAP 可插拔身份验证和 ldap.conf
- authentication_ldap_sasl_connect_timeout- 命令行格式 - --authentication-ldap-sasl-connect-timeout=#- 系统变量 - authentication_ldap_sasl_connect_timeout- 范围 - 全局 - 动态 - 是 - SET_VAR提示适用- 否 - 类型 - 整数 - 默认值 - 30- 最小值 - 0- 最大值 - 31536000- 单位 - 秒 - 指定 MySQL 服务器使用 TCP 连接到 LDAP 服务器等待的时间(以秒为单位)。 - 当 MySQL 帐户使用 LDAP 进行身份验证时,MySQL 服务器尝试与 LDAP 服务器建立 TCP 连接,它使用该连接通过连接发送 LDAP 绑定请求。如果 LDAP 服务器在配置的时间量后没有响应 TCP 握手,MySQL 会放弃 TCP 握手尝试并发出错误消息。如果超时设置值为零,MySQL 服务器会忽略此系统变量设置。有关更多信息,请参阅 为 LDAP 可插拔身份验证设置超时。 注意- 如果将此变量设置为大于主机系统默认值的超时值,则使用较短的系统超时。 
- authentication_ldap_sasl_group_search_attr- 命令行格式 - --authentication-ldap-sasl-group-search-attr=value- 系统变量 - authentication_ldap_sasl_group_search_attr- 范围 - 全局 - 动态 - 是 - SET_VAR提示适用- 否 - 类型 - 字符串 - 默认值 - cn- 对于 SASL LDAP 身份验证,指定 LDAP 目录条目中组名称的属性的名称。如果 - authentication_ldap_sasl_group_search_attr的默认值为- cn,则搜索将返回- cn值作为组名称。例如,如果- uid值为- user1的 LDAP 条目具有- cn属性- mygroup,则对- user1的搜索将返回- mygroup作为组名称。- 如果希望没有组或代理身份验证,则此变量应为空字符串。 - 如果组搜索属性为 - isMemberOf,则 LDAP 身份验证将直接检索用户属性- isMemberOf值并将其分配为组信息。如果组搜索属性不是- isMemberOf,则 LDAP 身份验证将搜索所有用户是成员的组。(后者是默认行为。)此行为基于 LDAP 组信息可以以两种方式存储:1) 组条目可以具有名为- memberUid或- member的属性,其值为用户名;2) 用户条目可以具有名为- isMemberOf的属性,其值为组名称。
- authentication_ldap_sasl_group_search_filter- 命令行格式 - --authentication-ldap-sasl-group-search-filter=value- 系统变量 - authentication_ldap_sasl_group_search_filter- 范围 - 全局 - 动态 - 是 - SET_VAR提示适用- 否 - 类型 - 字符串 - 默认值 - (|(&(objectClass=posixGroup)(memberUid=%s))(&(objectClass=group)(member=%s)))- 对于 SASL LDAP 身份验证,自定义组搜索过滤器。 - 搜索过滤器值可以包含 - {UA}和- {UD}符号来表示用户名和完整用户 DN。例如,- {UA}被替换为用户名,例如- "admin",而- {UD}被替换为完整 DN,例如- "uid=admin,ou=People,dc=example,dc=com"。以下值是默认值,它支持 OpenLDAP 和 Active Directory- (|(&(objectClass=posixGroup)(memberUid={UA})) (&(objectClass=group)(member={UD})))- 在某些情况下,对于用户场景, - memberOf是一个简单的用户属性,不包含任何组信息。为了提高灵活性,可以使用可选的- {GA}前缀与组搜索属性一起使用。具有 {GA} 前缀的任何组属性都被视为具有组名称的用户属性。例如,对于值为- {GA}MemberOf,如果组值为 DN,则返回组 DN 中的第一个属性值作为组名称。
- authentication_ldap_sasl_init_pool_size- 命令行格式 - --authentication-ldap-sasl-init-pool-size=#- 系统变量 - authentication_ldap_sasl_init_pool_size- 范围 - 全局 - 动态 - 是 - SET_VAR提示适用- 否 - 类型 - 整数 - 默认值 - 10- 最小值 - 0- 最大值 - 32767- 单位 - 连接 - 对于 SASL LDAP 身份验证,LDAP 服务器连接池的初始大小。根据 LDAP 服务器的平均并发身份验证请求数量选择此变量的值。 - 插件使用 - authentication_ldap_sasl_init_pool_size和- authentication_ldap_sasl_max_pool_size共同进行连接池管理- 当身份验证插件初始化时,它将创建 - authentication_ldap_sasl_init_pool_size连接,除非- authentication_ldap_sasl_max_pool_size=0禁用池。
- 如果插件在当前连接池中没有空闲连接的情况下收到身份验证请求,则插件可以创建新连接,直到达到由 - authentication_ldap_sasl_max_pool_size指定的最大连接池大小。
- 如果插件在池大小已达到最大值且没有空闲连接的情况下收到请求,则身份验证将失败。 
- 当插件卸载时,它将关闭所有池连接。 
 - 对插件系统变量设置的更改可能对池中已有的连接没有影响。例如,修改 LDAP 服务器主机、端口或 TLS 设置不会影响现有连接。但是,如果原始变量值无效,并且连接池无法初始化,则插件会在下一个 LDAP 请求时尝试重新初始化池。在这种情况下,新的系统变量值将用于重新初始化尝试。 - 如果将 - authentication_ldap_sasl_max_pool_size=0用于禁用池,则插件打开的每个 LDAP 连接都将使用系统变量在该时间点的值。
- authentication_ldap_sasl_log_status- 命令行格式 - --authentication-ldap-sasl-log-status=#- 系统变量 - authentication_ldap_sasl_log_status- 范围 - 全局 - 动态 - 是 - SET_VAR提示适用- 否 - 类型 - 整数 - 默认值 - 1- 最小值 - 1- 最大值 - 6- 对于 SASL LDAP 身份验证,写入错误日志的消息的日志级别。下表显示了允许的级别值及其含义。 - 表 8.29 authentication_ldap_sasl_log_status 的日志级别 - 选项值 - 记录的消息类型 - 1- 无消息 - 2- 错误消息 - 3- 错误和警告消息 - 4- 错误、警告和信息消息 - 5- 与上一级相同,另外还有来自 MySQL 的调试消息 - 6- 与上一级相同,另外还有来自 LDAP 库的调试消息 - 在客户端,可以通过设置 - AUTHENTICATION_LDAP_CLIENT_LOG环境变量将消息记录到标准输出。允许的值和默认值与- authentication_ldap_sasl_log_status相同。- AUTHENTICATION_LDAP_CLIENT_LOG环境变量仅适用于 SASL LDAP 身份验证。它对简单 LDAP 身份验证没有影响,因为在这种情况下,客户端插件是- mysql_clear_password,它不知道 LDAP 操作。
- authentication_ldap_sasl_max_pool_size- 命令行格式 - --authentication-ldap-sasl-max-pool-size=#- 系统变量 - authentication_ldap_sasl_max_pool_size- 范围 - 全局 - 动态 - 是 - SET_VAR提示适用- 否 - 类型 - 整数 - 默认值 - 1000- 最小值 - 0- 最大值 - 32767- 单位 - 连接 - 对于 SASL LDAP 身份验证,连接到 LDAP 服务器的连接池的最大大小。要禁用连接池,请将此变量设置为 0。 - 此变量与 - authentication_ldap_sasl_init_pool_size一起使用。请参阅该变量的描述。
- authentication_ldap_sasl_referral- 命令行格式 - --authentication-ldap-sasl-referral[={OFF|ON}]- 系统变量 - authentication_ldap_sasl_referral- 范围 - 全局 - 动态 - 是 - SET_VAR提示适用- 否 - 类型 - 布尔值 - 默认值 - OFF- 对于 SASL LDAP 身份验证,是否启用 LDAP 搜索引用。请参阅 LDAP 搜索引用。 - 此变量可以设置为覆盖默认的 OpenLDAP 引用配置;请参阅 LDAP 可插拔身份验证和 ldap.conf 
- authentication_ldap_sasl_response_timeout- 命令行格式 - --authentication-ldap-sasl-response-timeout=#- 系统变量 - authentication_ldap_sasl_response_timeout- 范围 - 全局 - 动态 - 是 - SET_VAR提示适用- 否 - 类型 - 整数 - 默认值 - 30- 最小值 - 0- 最大值 - 31536000- 单位 - 秒 - 指定 MySQL 服务器等待 LDAP 服务器响应 LDAP 绑定请求的时间(以秒为单位)。 - 当 MySQL 帐户使用 LDAP 进行身份验证时,MySQL 服务器会向 LDAP 服务器发送 LDAP 绑定请求。如果 LDAP 服务器在配置的时间量后没有响应请求,则 MySQL 会放弃请求并发出错误消息。如果超时设置为零,则 MySQL 服务器会忽略此系统变量设置。有关详细信息,请参阅 为 LDAP 可插拔身份验证设置超时。 
- authentication_ldap_sasl_server_host- 命令行格式 - --authentication-ldap-sasl-server-host=host_name- 系统变量 - authentication_ldap_sasl_server_host- 范围 - 全局 - 动态 - 是 - SET_VAR提示适用- 否 - 类型 - 字符串 - 对于 SASL LDAP 身份验证,LDAP 服务器主机。此变量的允许值取决于身份验证方法 - 对于 - authentication_ldap_sasl_auth_method_name=SCRAM-SHA-1:LDAP 服务器主机可以是主机名或 IP 地址。
- 对于 - authentication_ldap_sasl_auth_method_name=SCRAM-SHA-256:LDAP 服务器主机可以是主机名或 IP 地址。
 
- authentication_ldap_sasl_server_port- 命令行格式 - --authentication-ldap-sasl-server-port=port_num- 系统变量 - authentication_ldap_sasl_server_port- 范围 - 全局 - 动态 - 是 - SET_VAR提示适用- 否 - 类型 - 整数 - 默认值 - 389- 最小值 - 1- 最大值 - 32376- 对于 SASL LDAP 身份验证,LDAP 服务器 TCP/IP 端口号。 - 如果 LDAP 端口号配置为 636 或 3269,则插件将使用 LDAPS(LDAP over SSL)而不是 LDAP。(LDAPS 不同于 - startTLS。)
- 
命令行格式 --authentication-ldap-sasl-tls[={OFF|ON}]系统变量 authentication_ldap_sasl_tls范围 全局 动态 是 SET_VAR提示适用否 类型 布尔值 默认值 OFF对于 SASL LDAP 身份验证,插件连接到 LDAP 服务器是否安全。如果启用此变量,则插件将使用 TLS 安全地连接到 LDAP 服务器。此变量可以设置为覆盖默认的 OpenLDAP TLS 配置;请参阅 LDAP 可插拔身份验证和 ldap.conf 如果您启用此变量,您可能还想设置 authentication_ldap_sasl_ca_path变量。MySQL LDAP 插件支持 StartTLS 方法,该方法在普通 LDAP 连接之上初始化 TLS。 LDAPS 可以通过设置 authentication_ldap_sasl_server_port系统变量来使用。
- authentication_ldap_sasl_user_search_attr- 命令行格式 - --authentication-ldap-sasl-user-search-attr=value- 系统变量 - authentication_ldap_sasl_user_search_attr- 范围 - 全局 - 动态 - 是 - SET_VAR提示适用- 否 - 类型 - 字符串 - 默认值 - uid- 对于 SASL LDAP 身份验证,指定 LDAP 目录条目中用户名属性的名称。如果未提供用户区分名称,则身份验证插件将使用此属性搜索该名称。例如,如果 - authentication_ldap_sasl_user_search_attr值为- uid,则对用户名- user1的搜索会找到- uid值为- user1的条目。
- authentication_ldap_simple_auth_method_name- 命令行格式 - --authentication-ldap-simple-auth-method-name=value- 系统变量 - authentication_ldap_simple_auth_method_name- 范围 - 全局 - 动态 - 是 - SET_VAR提示适用- 否 - 类型 - 字符串 - 默认值 - SIMPLE- 有效值 - SIMPLE- AD-FOREST- 对于简单 LDAP 身份验证,身份验证方法名称。身份验证插件和 LDAP 服务器之间的通信将根据此身份验证方法进行。 注意- 对于所有简单 LDAP 身份验证方法,建议还设置 TLS 参数以要求与 LDAP 服务器的通信通过安全连接进行。 - 允许这些身份验证方法值 - SIMPLE:使用简单 LDAP 身份验证。此方法使用一个或两个 LDAP 绑定操作,具体取决于 MySQL 帐户是否命名 LDAP 用户区分名称。请参阅- authentication_ldap_simple_bind_root_dn的描述。
- AD-FOREST:- SIMPLE的变体,这样身份验证会在 Active Directory 林中的所有域中进行搜索,对每个 Active Directory 域执行 LDAP 绑定,直到在某个域中找到用户为止。
 
- authentication_ldap_simple_bind_base_dn- 命令行格式 - --authentication-ldap-simple-bind-base-dn=value- 系统变量 - authentication_ldap_simple_bind_base_dn- 范围 - 全局 - 动态 - 是 - SET_VAR提示适用- 否 - 类型 - 字符串 - 默认值 - NULL- 对于简单 LDAP 身份验证,基础区分名称 (DN)。此变量可用于通过将搜索锚定在搜索树中的某个位置(“基础”)来限制搜索范围。 - 假设一组 LDAP 用户条目中的每个成员都具有以下形式 - uid=user_name,ou=People,dc=example,dc=com- 而另一组 LDAP 用户条目中的每个成员都具有以下形式 - uid=user_name,ou=Admin,dc=example,dc=com- 那么对于不同的基本 DN 值,搜索的工作方式如下 - 如果基本 DN 为 - ou=People,dc=example,dc=com:搜索仅在第一组中查找用户条目。
- 如果基本 DN 为 - ou=Admin,dc=example,dc=com:搜索仅在第二组中查找用户条目。
- 如果基本 DN 为 - ou=dc=example,dc=com:搜索在第一组或第二组中查找用户条目。
 - 一般来说,更具体的基 DN 值会导致更快的搜索,因为它们会更多地限制搜索范围。 
- authentication_ldap_simple_bind_root_dn- 命令行格式 - --authentication-ldap-simple-bind-root-dn=value- 系统变量 - authentication_ldap_simple_bind_root_dn- 范围 - 全局 - 动态 - 是 - SET_VAR提示适用- 否 - 类型 - 字符串 - 默认值 - NULL- 对于简单 LDAP 身份验证,根区分名称 (DN)。此变量与 - authentication_ldap_simple_bind_root_pwd一起用作身份验证到 LDAP 服务器以执行搜索的凭据。身份验证使用一个或两个 LDAP 绑定操作,具体取决于 MySQL 帐户是否命名 LDAP 用户 DN- 如果帐户没有命名用户 DN: - authentication_ldap_simple使用- authentication_ldap_simple_bind_root_dn和- authentication_ldap_simple_bind_root_pwd执行初始 LDAP 绑定。(默认情况下,这两个值都为空,因此如果未设置,则 LDAP 服务器必须允许匿名连接。)生成的绑定 LDAP 句柄用于根据客户端用户名搜索用户 DN。- authentication_ldap_simple使用用户 DN 和客户端提供的密码执行第二个绑定。
- 如果帐户确实命名了用户 DN:在这种情况下,第一个绑定操作是不必要的。 - authentication_ldap_simple使用用户 DN 和客户端提供的密码执行单个绑定。这比 MySQL 帐户未指定 LDAP 用户 DN 时更快。
 
- authentication_ldap_simple_bind_root_pwd- 命令行格式 - --authentication-ldap-simple-bind-root-pwd=value- 系统变量 - authentication_ldap_simple_bind_root_pwd- 范围 - 全局 - 动态 - 是 - SET_VAR提示适用- 否 - 类型 - 字符串 - 默认值 - NULL- 对于简单 LDAP 身份验证,根区分名称的密码。此变量与 - authentication_ldap_simple_bind_root_dn一起使用。请参阅该变量的描述。
- authentication_ldap_simple_ca_path- 命令行格式 - --authentication-ldap-simple-ca-path=value- 系统变量 - authentication_ldap_simple_ca_path- 范围 - 全局 - 动态 - 是 - SET_VAR提示适用- 否 - 类型 - 字符串 - 默认值 - NULL- 对于简单 LDAP 身份验证,证书颁发机构文件的绝对路径。如果希望身份验证插件执行 LDAP 服务器证书的验证,请指定此文件。 注意- 除了将 - authentication_ldap_simple_ca_path变量设置为文件名外,您还必须将相应的证书颁发机构证书添加到文件中并启用- authentication_ldap_simple_tls系统变量。这些变量可以设置为覆盖默认的 OpenLDAP TLS 配置;请参阅 LDAP 可插拔身份验证和 ldap.conf
- authentication_ldap_simple_connect_timeout- 命令行格式 - --authentication-ldap-simple-connect-timeout=#- 系统变量 - authentication_ldap_simple_connect_timeout- 范围 - 全局 - 动态 - 是 - SET_VAR提示适用- 否 - 类型 - 整数 - 默认值 - 30- 最小值 - 0- 最大值 - 31536000- 单位 - 秒 - 指定 MySQL 服务器使用 TCP 连接到 LDAP 服务器等待的时间(以秒为单位)。 - 当 MySQL 帐户使用 LDAP 进行身份验证时,MySQL 服务器尝试与 LDAP 服务器建立 TCP 连接,它使用该连接通过连接发送 LDAP 绑定请求。如果 LDAP 服务器在配置的时间量后没有响应 TCP 握手,MySQL 会放弃 TCP 握手尝试并发出错误消息。如果超时设置值为零,MySQL 服务器会忽略此系统变量设置。有关更多信息,请参阅 为 LDAP 可插拔身份验证设置超时。 注意- 如果将此变量设置为大于主机系统默认值的超时值,则使用较短的系统超时。 
- authentication_ldap_simple_group_search_attr- 命令行格式 - --authentication-ldap-simple-group-search-attr=value- 系统变量 - authentication_ldap_simple_group_search_attr- 范围 - 全局 - 动态 - 是 - SET_VAR提示适用- 否 - 类型 - 字符串 - 默认值 - cn- 对于简单 LDAP 身份验证,指定 LDAP 目录条目中组名的属性的名称。如果 - authentication_ldap_simple_group_search_attr的默认值为- cn,则搜索将返回- cn值作为组名。例如,如果具有- uid值为- user1的 LDAP 条目具有- cn属性为- mygroup,则对- user1的搜索将返回- mygroup作为组名。- 如果组搜索属性为 - isMemberOf,则 LDAP 身份验证将直接检索用户属性- isMemberOf值并将其分配为组信息。如果组搜索属性不是- isMemberOf,则 LDAP 身份验证将搜索所有用户是成员的组。(后者是默认行为。)此行为基于 LDAP 组信息可以以两种方式存储:1) 组条目可以具有名为- memberUid或- member的属性,其值为用户名;2) 用户条目可以具有名为- isMemberOf的属性,其值为组名称。
- authentication_ldap_simple_group_search_filter- 命令行格式 - --authentication-ldap-simple-group-search-filter=value- 系统变量 - authentication_ldap_simple_group_search_filter- 范围 - 全局 - 动态 - 是 - SET_VAR提示适用- 否 - 类型 - 字符串 - 默认值 - (|(&(objectClass=posixGroup)(memberUid=%s))(&(objectClass=group)(member=%s)))- 对于简单的 LDAP 身份验证,自定义组搜索过滤器。 - 搜索过滤器值可以包含 - {UA}和- {UD}符号来表示用户名和完整用户 DN。例如,- {UA}被替换为用户名,例如- "admin",而- {UD}被替换为完整 DN,例如- "uid=admin,ou=People,dc=example,dc=com"。以下值是默认值,它支持 OpenLDAP 和 Active Directory- (|(&(objectClass=posixGroup)(memberUid={UA})) (&(objectClass=group)(member={UD})))- 在某些情况下,对于用户场景, - memberOf是一个简单的用户属性,不包含任何组信息。为了提高灵活性,可以使用可选的- {GA}前缀与组搜索属性一起使用。具有 {GA} 前缀的任何组属性都被视为具有组名称的用户属性。例如,对于值为- {GA}MemberOf,如果组值为 DN,则返回组 DN 中的第一个属性值作为组名称。
- authentication_ldap_simple_init_pool_size- 命令行格式 - --authentication-ldap-simple-init-pool-size=#- 系统变量 - authentication_ldap_simple_init_pool_size- 范围 - 全局 - 动态 - 是 - SET_VAR提示适用- 否 - 类型 - 整数 - 默认值 - 10- 最小值 - 0- 最大值 - 32767- 单位 - 连接 - 对于简单的 LDAP 身份验证,连接到 LDAP 服务器的连接池的初始大小。根据到 LDAP 服务器的并发身份验证请求的平均数量选择此变量的值。 - 该插件使用 - authentication_ldap_simple_init_pool_size和- authentication_ldap_simple_max_pool_size共同进行连接池管理- 当身份验证插件初始化时,它会创建 - authentication_ldap_simple_init_pool_size个连接,除非- authentication_ldap_simple_max_pool_size=0禁用池化。
- 如果插件在当前连接池中没有空闲连接的情况下收到身份验证请求,插件可以创建一个新连接,最多达到由 - authentication_ldap_simple_max_pool_size指定的最大连接池大小。
- 如果插件在池大小已达到最大值且没有空闲连接的情况下收到请求,则身份验证将失败。 
- 当插件卸载时,它将关闭所有池连接。 
 - 对插件系统变量设置的更改可能对池中已有的连接没有影响。例如,修改 LDAP 服务器主机、端口或 TLS 设置不会影响现有连接。但是,如果原始变量值无效,并且连接池无法初始化,则插件会在下一个 LDAP 请求时尝试重新初始化池。在这种情况下,新的系统变量值将用于重新初始化尝试。 - 如果 - authentication_ldap_simple_max_pool_size=0禁用池化,插件打开的每个 LDAP 连接都使用系统变量在当时具有的值。
- authentication_ldap_simple_log_status- 命令行格式 - --authentication-ldap-simple-log-status=#- 系统变量 - authentication_ldap_simple_log_status- 范围 - 全局 - 动态 - 是 - SET_VAR提示适用- 否 - 类型 - 整数 - 默认值 - 1- 最小值 - 1- 最大值 - 6- 对于简单的 LDAP 身份验证,写入错误日志的消息的日志级别。下表显示了允许的级别值及其含义。 - 表 8.30 authentication_ldap_simple_log_status 的日志级别 - 选项值 - 记录的消息类型 - 1- 无消息 - 2- 错误消息 - 3- 错误和警告消息 - 4- 错误、警告和信息消息 - 5- 与上一级相同,另外还有来自 MySQL 的调试消息 - 6- 与上一级相同,另外还有来自 LDAP 库的调试消息 
- authentication_ldap_simple_max_pool_size- 命令行格式 - --authentication-ldap-simple-max-pool-size=#- 系统变量 - authentication_ldap_simple_max_pool_size- 范围 - 全局 - 动态 - 是 - SET_VAR提示适用- 否 - 类型 - 整数 - 默认值 - 1000- 最小值 - 0- 最大值 - 32767- 单位 - 连接 - 对于简单的 LDAP 身份验证,连接到 LDAP 服务器的连接池的最大大小。要禁用连接池,将此变量设置为 0。 - 此变量与 - authentication_ldap_simple_init_pool_size结合使用。请参阅该变量的描述。
- authentication_ldap_simple_referral- 命令行格式 - --authentication-ldap-simple-referral[={OFF|ON}]- 系统变量 - authentication_ldap_simple_referral- 范围 - 全局 - 动态 - 是 - SET_VAR提示适用- 否 - 类型 - 布尔值 - 默认值 - OFF- 对于简单的 LDAP 身份验证,是否启用 LDAP 搜索转介。请参阅 LDAP 搜索转介. 
- authentication_ldap_simple_response_timeout- 命令行格式 - --authentication-ldap-simple-response-timeout=#- 系统变量 - authentication_ldap_simple_response_timeout- 范围 - 全局 - 动态 - 是 - SET_VAR提示适用- 否 - 类型 - 整数 - 默认值 - 30- 最小值 - 0- 最大值 - 31536000- 单位 - 秒 - 指定 MySQL 服务器等待 LDAP 服务器响应 LDAP 绑定请求的时间(以秒为单位)。 - 当 MySQL 帐户使用 LDAP 进行身份验证时,MySQL 服务器会向 LDAP 服务器发送 LDAP 绑定请求。如果 LDAP 服务器在配置的时间量后没有响应请求,则 MySQL 会放弃请求并发出错误消息。如果超时设置为零,则 MySQL 服务器会忽略此系统变量设置。有关详细信息,请参阅 为 LDAP 可插拔身份验证设置超时。 
- authentication_ldap_simple_server_host- 命令行格式 - --authentication-ldap-simple-server-host=host_name- 系统变量 - authentication_ldap_simple_server_host- 范围 - 全局 - 动态 - 是 - SET_VAR提示适用- 否 - 类型 - 字符串 - 对于简单的 LDAP 身份验证,LDAP 服务器主机。此变量的允许值取决于身份验证方法 - 对于 - authentication_ldap_simple_auth_method_name=SIMPLE: LDAP 服务器主机可以是主机名或 IP 地址。
- 对于 - authentication_ldap_simple_auth_method_name=AD-FOREST。LDAP 服务器主机可以是 Active Directory 域名。例如,对于 LDAP 服务器 URL- ldap://example.mem.local:389,域名可以是- mem.local。- Active Directory 林设置可以有多个域(LDAP 服务器 IP),这些域可以使用 DNS 发现。在 Unix 和类 Unix 系统上,可能需要进行一些额外的设置才能使用指定 Active Directory 域的 LDAP 服务器的 SRV 记录配置您的 DNS 服务器。有关 DNS SRV 的信息,请参阅 RFC 2782. - 假设您的配置具有以下属性 - 提供有关 Active Directory 域的信息的名称服务器的 IP 地址为 - 10.172.166.100。
- LDAP 服务器的名称为 - ldap1.mem.local到- ldap3.mem.local,IP 地址为- 10.172.166.101到- 10.172.166.103。
 - 您希望 LDAP 服务器可通过 SRV 搜索发现。例如,在命令行中,类似以下的命令应该列出 LDAP 服务器 - host -t SRV _ldap._tcp.mem.local- 执行以下 DNS 配置 - 在 - /etc/resolv.conf中添加一行以指定提供有关 Active Directory 域的信息的名称服务器- nameserver 10.172.166.100
- 使用 LDAP 服务器的 SRV 记录配置名称服务器的适当区域文件 - _ldap._tcp.mem.local. 86400 IN SRV 0 100 389 ldap1.mem.local. _ldap._tcp.mem.local. 86400 IN SRV 0 100 389 ldap2.mem.local. _ldap._tcp.mem.local. 86400 IN SRV 0 100 389 ldap3.mem.local.
- 如果无法解析服务器主机,也可能需要在 - /etc/hosts中指定 LDAP 服务器的 IP 地址。例如,在文件中添加以下行- 10.172.166.101 ldap1.mem.local 10.172.166.102 ldap2.mem.local 10.172.166.103 ldap3.mem.local
 - 通过如上所述配置 DNS,服务器端 LDAP 插件可以发现 LDAP 服务器,并尝试在所有域中进行身份验证,直到身份验证成功或没有更多服务器。 - Windows 不需要如上所述的设置。在 - authentication_ldap_simple_server_host值中给出 LDAP 服务器主机后,Windows LDAP 库将搜索所有域并尝试进行身份验证。
 
- authentication_ldap_simple_server_port- 命令行格式 - --authentication-ldap-simple-server-port=port_num- 系统变量 - authentication_ldap_simple_server_port- 范围 - 全局 - 动态 - 是 - SET_VAR提示适用- 否 - 类型 - 整数 - 默认值 - 389- 最小值 - 1- 最大值 - 32376- 对于简单的 LDAP 身份验证,LDAP 服务器 TCP/IP 端口号。 - 如果 LDAP 端口号配置为 636 或 3269,则插件将使用 LDAPS(LDAP over SSL)而不是 LDAP。(LDAPS 不同于 - startTLS。)
- authentication_ldap_simple_tls- 命令行格式 - --authentication-ldap-simple-tls[={OFF|ON}]- 系统变量 - authentication_ldap_simple_tls- 范围 - 全局 - 动态 - 是 - SET_VAR提示适用- 否 - 类型 - 布尔值 - 默认值 - OFF- 对于简单的 LDAP 身份验证,插件到 LDAP 服务器的连接是否安全。如果启用此变量,插件将使用 TLS 安全地连接到 LDAP 服务器。此变量可以设置为覆盖默认的 OpenLDAP TLS 配置;请参阅 LDAP Pluggable 身份验证和 ldap.conf 如果您启用此变量,您可能还想设置 - authentication_ldap_simple_ca_path变量。- MySQL LDAP 插件支持 StartTLS 方法,该方法在普通 LDAP 连接之上初始化 TLS。 - LDAPS 可以通过设置 - authentication_ldap_simple_server_port系统变量来使用。
- authentication_ldap_simple_user_search_attr- 命令行格式 - --authentication-ldap-simple-user-search-attr=value- 系统变量 - authentication_ldap_simple_user_search_attr- 范围 - 全局 - 动态 - 是 - SET_VAR提示适用- 否 - 类型 - 字符串 - 默认值 - uid- 对于简单的 LDAP 身份验证,指定 LDAP 目录条目中用户名属性的名称。如果没有提供用户区分名称,则身份验证插件将使用此属性搜索名称。例如,如果 - authentication_ldap_simple_user_search_attr的值为- uid,则搜索用户名- user1会查找- uid值为- user1的条目。
- 
命令行格式 --authentication-webauthn-rp-id=value系统变量 authentication_webauthn_rp_id范围 全局 动态 是 SET_VAR提示适用否 类型 字符串 此变量指定用于服务器端插件安装、设备注册和 WebAuthn 身份验证的依赖方 ID。如果尝试进行 WebAuthn 身份验证且此值与设备期望的值不符,则设备会认为它没有与正确的服务器通信,并且会发生错误。最大值长度为 255 个字符。