Skip to main content

示例

本示例展示了如何为隶属于不同 AD 安全组的 AD 用户授予 ClickHouse 中相应角色的访问权限。它还展示了如何将同一用户添加到多个 AD 用户组中,从而获得多个角色授予的访问权限。 在此环境中,包含以下内容:
  • 一个 Windows Active Directory 域:marsnet2.local
  • 一个 ClickHouse 集群 cluster_1S_3R,包含 3 个节点,集群配置为 1 个分片、3 个副本
  • 3 个 AD 用户
  • 3 个 AD 安全组
  • 示例 AD 环境和 OU 结构:
  • 示例 AD 安全组配置:
  • 示例 AD 用户配置:
  1. 在 Windows AD Users and Groups 中,将每个用户添加到各自对应的组;这些组会映射到 ClickHouse 角色 (示例见下一步) 。
  • 示例用户组成员关系:
  1. 在 ClickHouse 的 config.xml 中,为每个 ClickHouse 节点添加 ldap_servers 配置。
有关完整选项,请参阅文档: https://clickhouse.com/docs/operations/external-authenticators/ldap#ldap-server-definition
  1. 在 ClickHouse config.xml 中,为每个 ClickHouse 节点添加包含 <ldap> 条目的 <user_directories> 配置。
有关完整选项,请参阅文档: https://clickhouse.com/docs/operations/external-authenticators/ldap#ldap-external-user-directory note::: 由于示例中的 AD 安全组带有前缀——即 clickhouse_ad_db1_users——系统检索到这些组后会移除该前缀,并查找名为 ad_db1_users 的 ClickHouse 角色,将其映射到 clickhouse_ad_db1_users:::
  1. 创建示例数据库。
  1. 创建示例表。
  1. 插入示例数据。
  1. 创建 ClickHouse 角色。
  1. 向这些角色授予权限。
  1. 测试受限 db1 用户的访问权限。 例如:
  1. 测试可同时访问两个数据库 db1 和 db2 的用户的访问情况。 例如:
  1. 测试 Admin 用户的访问权限。 例如:
最后修改于 2026年7月3日