这些设置用于配置 ClickHouse 服务器,并由 ClickHouse 源代码自动生成。
user_directories
配置文件中包含以下设置的部分:
- 预定义用户的配置文件路径。
- 由 SQL 命令创建的用户的存储目录路径。
- 由 SQL 命令创建的用户的 ZooKeeper 节点路径,用于存储和复制这些用户。
如果指定了此部分,则不会使用 users_config 和 access_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>你还可以定义 memory 和 ldap 部分: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
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>