[toc]
# 配置文件样例
默认的配置文件如下
<clickhouse>
<profiles>
<default>
</default>
<readonly>
<readonly>1</readonly>
</readonly>
</profiles>
<users>
<default>
<password></password>
<networks>
<ip>::/0</ip>
</networks>
<profile>default</profile>
<quota>default</quota>
<access_management>1</access_management>
<named_collection_control>1</named_collection_control>
</default>
</users>
<quotas>
<default>
<interval>
<duration>3600</duration>
<queries>0</queries>
<errors>0</errors>
<result_rows>0</result_rows>
<read_rows>0</read_rows>
<execution_time>0</execution_time>
</interval>
</default>
</quotas>
</clickhouse>
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
# users
在ClickHouse配置文件中的<users>
部分用于定义数据库的用户及其属性。这些属性包括用户的认证信息、所分配的权限、配置文件、网络访问限制等。每个用户都在<user>
标签下定义,并拥有一组属性。下面是对<users>
部分配置的具体说明:
<users>
<default>
<password>example</password>
<networks>
<ip>::/0</ip>
</networks>
<profile>default</profile>
<quota>default</quota>
</default>
</users>
2
3
4
5
6
7
8
9
10
<default>
: 这是定义的用户名称,default
表示这是一个名为"default"的用户。可以为不同的用户定义不同的标签,从而在系统中创建多个用户。<password>
: 这是用户的密码。在上面的例子中,密码设置为example
。对于生产环境,强烈建议使用更安全的密码。<networks>
: 此标签定义了用户可以从哪些IP地址连接到数据库。可以指定具体的IP地址或IP范围。例如,<ip>::/0</ip>
表示接受来自任何IPv6地址的连接。对于IPv4,可以使用<ip>0.0.0.0/0</ip>
来允许任何IPv4地址的连接。<profile>
: 这定义了此用户将使用哪个权限和行为配置文件。在这个例子中,用户将使用<profiles>
部分定义的default
配置文件。这意味着该用户的行为将受到<profiles>
中<default>
配置的限制。<quota>
: 这定义了用户使用的配额名称。配额用于限制用户在一定时间内可以使用的资源或执行的操作数量。在上面的例子中,使用的是default
配额。
通过配置<users>
部分,管理员可以控制谁可以访问数据库,以及用户可以如何与数据库交云。你可以为不同的用户设置不同的权限和限制,以确保数据库的安全和有效管理。
为用户设置或更改属性时,需要编辑配置文件并重新启动ClickHouse服务以使更改生效。每个用户可以有独立的配置,从而实现细粒度的访问控制和资源管理。
# profiles
在ClickHouse配置文件中的<profiles>
部分定义了数据库用户的权限和行为限制。这是为了提供更细致的控制方式,以决定用户可以执行哪些操作,以及操作的具体限制。每个<profile>
标签定义了一组特定的权限和行为限制,这些配置可以分配给一个或多个用户。下面是对<profiles>
部分配置的具体说明:
<profiles>
<default>
<max_threads>1</max_threads>
<max_execution_time>30</max_execution_time>
<readonly>0</readonly>
</default>
</profiles>
2
3
4
5
6
7
<default>
: 这是一个权限和行为配置的名称,default
表示这是默认的配置。可以定义多个配置文件,并为不同的用户分配不同的配置文件。<max_threads>
: 此设置限制了用户可以使用的最大线程数。在上面的例子中,1
表示用户的查询将只能使用一个线程执行。这有助于防止单个查询占用过多CPU资源。<max_execution_time>
: 此设置限制了每个查询的最大执行时间,单位为秒。在上面的例子中,30
表示任何查询的执行时间不能超过30秒。如果查询执行时间超过这个限制,查询将被自动终止。<readonly>
: 此设置控制用户是否只能执行读取操作。0
表示用户可以执行读写操作;1
表示用户只能执行读取操作,不能插入或修改数据;2
表示用户除了读取操作外,还可以执行设置会话级别变量的操作。
通过这些配置,管理员可以非常灵活地管理用户的行为,例如限制用户执行长时间运行的查询,或限制用户的并发资源使用。要修改这些限制,只需更改相应的值即可。例如,如果希望限制用户查询的最大执行时间为60秒,可以将<max_execution_time>
的值设置为60
。
为用户分配特定的配置文件是通过在用户定义中设置<profile>
标签来实现的,你可以指定任何已定义的配置文件名称。在实际应用中,根据数据库的使用情况和安全要求,可能需要调整这些配置。
# quotas介绍
在ClickHouse配置文件中的<quotas>
部分定义了数据库用户的使用配额,这是为了限制用户对数据库资源的使用,从而防止单个用户占用过多资源。每个<quota>
标签定义了一组特定的使用限制,这些限制可以分配给一个或多个用户。下面是对<quotas>
部分配置的具体说明:
<quotas>
<default>
<interval>
<duration>3600</duration>
<queries>0</queries>
<errors>0</errors>
<result_rows>0</result_rows>
<read_rows>0</read_rows>
<execution_time>0</execution_time>
</interval>
</default>
</quotas>
2
3
4
5
6
7
8
9
10
11
12
<default>
: 这是一个配额配置的名称,default
表示这是默认的配额设置。可以定义多个配额配置,并为不同的用户分配不同的配额配置。<interval>
: 定义了一个时间间隔和该时间间隔内的限制条件。一个配额可以包含多个<interval>
标签,每个标签定义不同的时间间隔和相应的限制。<duration>
: 时间间隔的长度,单位为秒。在这个例子中,3600
表示配额限制在每个1小时的时间段内被重新计算和应用。<queries>
: 在指定的时间间隔内允许的最大查询次数。0
表示没有限制。<errors>
: 在指定的时间间隔内允许的最大错误数。0
表示没有限制。<result_rows>
: 在指定的时间间隔内,通过查询可以检索的最大行数。0
表示没有限制。<read_rows>
: 在指定的时间间隔内,可以从数据库中读取的最大行数。这包括了所有的查询操作。0
表示没有限制。<execution_time>
: 在指定的时间间隔内,所有查询的最大总执行时间,单位为秒。0
表示没有限制。
通过这些配置,管理员可以非常灵活地管理用户对ClickHouse资源的使用,例如限制高频率查询的用户,或者防止执行大量数据处理操作的查询过多消耗系统资源。要修改这些限制,只需更改相应的数字即可。例如,如果你希望限制用户在一个小时内只能执行100次查询,可以将<queries>
的值设置为100
。
为用户分配特定的配额配置是通过在用户定义中设置<quota>
标签来实现的,你可以指定任何已定义的配额名称。在实际应用中,可能需要根据实际的数据库使用情况来调整这些限制值。