You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

ClickHouse 23.3.1版本MSAD LDAP角色映射缓存行为咨询

ClickHouse LDAP角色缓存相关问题解答

问题场景

  • ClickHouse版本:23.3.1.2823
  • 环境:对接MSAD(Windows Server 2019),按官方文档配置LDAP角色映射,未设置verification_cooldown;mytable仅授权给某一角色,用户属于与CH角色同名的AD组
  • 执行命令:
SELECT COUNT(1) FROM mytable
SHOW CURRENT ROLES
  • 现象:
    • 初始状态下,使用clickhouse-client和curl执行命令均正常,SELECT可成功执行,SHOW CURRENT ROLES能显示对应角色
    • 将用户从AD组移除后,持续执行命令时,SELECT仍未返回权限错误,角色仍在结果中;停止调用约10-15分钟后,才出现预期的权限错误及空角色结果
    • 缓存按主机/客户端维护,同一用户从另一主机执行相同命令会得到不同结果

问题解答

1. 若持续从客户端执行命令,LDAP组成员缓存可能永不清除,这属于预期行为吗?

这属于预期行为。ClickHouse在未配置verification_cooldown时,默认会复用已建立的LDAP会话缓存,只要客户端持续发送请求保持会话活跃,缓存就不会被主动清除——因为会话未被判定为闲置,所以不会触发缓存过期逻辑。

2. 该行为是否有官方文档说明?

ClickHouse官方文档中关于LDAP身份验证的章节明确说明了相关机制:当用户通过LDAP验证后,相关的组信息与会话会被缓存,直到会话闲置达到内部默认阈值(约10-15分钟)或通过verification_cooldown参数主动配置缓存有效期;同时缓存基于客户端连接上下文维护,不同客户端/主机的连接会有独立的缓存条目。

3. 如何调整LDAP组成员缓存的清除时间间隔?

通过在LDAP配置中设置verification_cooldown参数来调整缓存有效期,具体步骤如下:

  1. 打开ClickHouse的配置文件(如users.xml或独立的LDAP配置文件)
  2. 在对应LDAP身份验证的配置段中添加verification_cooldown字段,单位为秒。示例配置:
<ldap>
    <your_ldap_config_name>
        <!-- 已有的LDAP配置项,如服务器地址、绑定DN等 -->
        <verification_cooldown>300</verification_cooldown> <!-- 设置缓存有效期为5分钟 -->
    </your_ldap_config_name>
</ldap>
  1. 修改配置后重启ClickHouse服务,新配置即可生效。设置后,每经过指定的verification_cooldown时长,ClickHouse会重新验证用户的LDAP组成员身份并更新缓存,不受客户端持续请求的影响。

内容的提问来源于stack exchange,提问作者Mark Barinstein

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.16 11:27:18