Skip to content
ClickHouse Docs
ClickHouse DocsClickHouse Docs

user_* 服务器设置

这些设置用于配置 ClickHouse 服务器,并由 ClickHouse 源代码自动生成。

user_directories

配置文件中包含以下设置的部分:

  • 预定义用户的配置文件路径。
  • 由 SQL 命令创建的用户的存储目录路径。
  • 由 SQL 命令创建的用户的 ZooKeeper 节点路径,用于存储和复制这些用户。

如果指定了此部分,则不会使用 users_configaccess_control_path 中的路径。

user_directories 部分可以包含任意数量的条目,条目的顺序表示它们的优先次序 (越靠前的条目,优先次序越高) 。

示例

<user_directories>
    <users_xml>
        <path>/etc/clickhouse-server/users.xml</path>
    </users_xml>
    <local_directory>
        <path>/var/lib/clickhouse/access/</path>
    </local_directory>
</user_directories>

用户、角色、行策略、配额以及 profile 也可以存储在 ZooKeeper 中:

<user_directories>
    <users_xml>
        <path>/etc/clickhouse-server/users.xml</path>
    </users_xml>
    <replicated>
        <zookeeper_path>/clickhouse/access/</zookeeper_path>
    </replicated>
</user_directories>

你还可以定义 memoryldap 部分:memory 表示信息仅存储在内存中,不写入磁盘;ldap 表示信息存储在 LDAP 服务器上。

要将 LDAP 服务器添加为远程用户目录,用于存放未在本地定义的用户,请定义一个 ldap 部分,并包含以下设置:

Setting Description
roles 该部分包含一个本地定义的角色列表,这些角色会分配给从 LDAP 服务器获取的每个用户。如果未指定任何角色,用户在完成身份验证后将无法执行任何操作。如果在身份验证时,列表中的任一角色未在本地定义,则此次身份验证将失败,就像提供的密码不正确一样。
server ldap_servers config 部分中定义的 LDAP 服务器名称之一。此参数为必填项,且不能为空。

示例

<ldap>
    <server>my_ldap_server</server>
        <roles>
            <my_local_role1 />
            <my_local_role2 />
        </roles>
</ldap>

user_files_path

类型
String
默认值
/var/lib/clickhouse/user_files/
无需重启即可更改
No

包含用户文件的目录。用于表函数 file()fileCluster()

示例

<user_files_path>/var/lib/clickhouse/user_files/</user_files_path>

user_profile_events_per_cpu

类型
Bool
默认值
1
无需重启即可更改
No
按 CPU 对每个用户的 ProfileEvents 计数器进行分片,以避免在线程数较多时发生跨 CPU 的缓存行争用。每个用户会占用 getNumCPUs() * num_events * sizeof(atomic) 的内存 (在多核机器上可达数百 KiB) 。禁用此项后,会回退为每个用户的每个事件只使用一个共享 atomic,即以吞吐量换取更低的内存占用。

user_scripts_path

类型
String
默认值
/var/lib/clickhouse/user_scripts/
无需重启即可更改
No

用于存放用户脚本文件的目录。用于可执行的用户自定义函数 Executable User Defined Functions

示例

<user_scripts_path>/var/lib/clickhouse/user_scripts/</user_scripts_path>
Navigation