Jast blog Jast blog
首页
  • 《Ambari自定义开发教程》笔记
  • 《CDH教程》笔记
  • 《ClickHouse教程》笔记
  • 《HDFS教程》笔记
  • 《DolphinScheduler教程》笔记
  • 《Hbase教程》笔记
  • 《Iceberg教程》笔记
  • 《Hive教程》笔记
  • 《Flume教程》笔记
  • 《Kafka教程》笔记
  • 《Impala教程》笔记
  • 《Hue教程》笔记
  • 《Spark教程》笔记
  • 《Flink教程》笔记
  • 《Phoenix教程》笔记
  • 《ElasticSearch教程》笔记
  • 《Kylin教程》笔记
  • 《Storm教程》笔记
  • 《Yarn教程》笔记
  • 《Presto教程》笔记
  • 《图数据库教程》笔记
  • 《Kerberos教程》笔记
  • 《Maxwell教程》笔记
  • 《MinIO教程》笔记
  • 《DataX教程》笔记
  • 《Superset教程》笔记
  • 《IOTDB教程》笔记
  • 《大数据相关》笔记
  • 《PaddleNLP教程》笔记
  • 《Nginx教程》笔记
  • 《Java技术文档》
  • 《Maven教程》笔记
  • 《IDEA使用教程》
  • 学习
  • 面试
  • 心情杂货
  • 实用技巧
  • 友情链接
关于
收藏
  • 分类
  • 标签
  • 归档

Jast-zsh

如果你知道你要去哪里,全世界都会给你让路。
首页
  • 《Ambari自定义开发教程》笔记
  • 《CDH教程》笔记
  • 《ClickHouse教程》笔记
  • 《HDFS教程》笔记
  • 《DolphinScheduler教程》笔记
  • 《Hbase教程》笔记
  • 《Iceberg教程》笔记
  • 《Hive教程》笔记
  • 《Flume教程》笔记
  • 《Kafka教程》笔记
  • 《Impala教程》笔记
  • 《Hue教程》笔记
  • 《Spark教程》笔记
  • 《Flink教程》笔记
  • 《Phoenix教程》笔记
  • 《ElasticSearch教程》笔记
  • 《Kylin教程》笔记
  • 《Storm教程》笔记
  • 《Yarn教程》笔记
  • 《Presto教程》笔记
  • 《图数据库教程》笔记
  • 《Kerberos教程》笔记
  • 《Maxwell教程》笔记
  • 《MinIO教程》笔记
  • 《DataX教程》笔记
  • 《Superset教程》笔记
  • 《IOTDB教程》笔记
  • 《大数据相关》笔记
  • 《PaddleNLP教程》笔记
  • 《Nginx教程》笔记
  • 《Java技术文档》
  • 《Maven教程》笔记
  • 《IDEA使用教程》
  • 学习
  • 面试
  • 心情杂货
  • 实用技巧
  • 友情链接
关于
收藏
  • 分类
  • 标签
  • 归档
  • 安装Clickhouse集群
  • Clickhouse基础知识
  • Clickhouse-SQL操作
  • Clickhouse-副本
  • Clickhouse-分片集群
  • TODO-Clickhouse-Explain查看执行计划
  • Clickhouse-建表优化
  • Clickhouse-语法优化规则
  • Clickhouse-查询优化
  • Clickhouse-数据一致性
  • Clickhouse-物化视图
  • Clickhouse-使用Kafka表引擎
  • users xml配置文件详解
    • 配置文件样例
    • users
    • profiles
    • quotas介绍
  • ClickHouse如何实现数据更新-ReplicatedReplacingMergeTree
  • ClickHouse-SQL使用
  • 使用ClickHouseSink写入数据
  • Mutations操作-数据的删除和修改
  • Clickhouse-每批次写入跨多个分区设置
  • 《ClickHouse教程》笔记
Jast-zsh
2024-07-12
目录

users xml配置文件详解

[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>

1
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>
1
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>
1
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>
1
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>标签来实现的,你可以指定任何已定义的配额名称。在实际应用中,可能需要根据实际的数据库使用情况来调整这些限制值。

上次更新: 2024/07/12, 13:19:37
Clickhouse-使用Kafka表引擎
ClickHouse如何实现数据更新-ReplicatedReplacingMergeTree

← Clickhouse-使用Kafka表引擎 ClickHouse如何实现数据更新-ReplicatedReplacingMergeTree→

最近更新
01
Linux可视化监控
02-26
02
Maven私服搭建
02-26
03
当ElasticSearch时间字段设置多个格式到底是用的哪个?
01-19
更多文章>
Theme by Vdoing | Copyright © 2016-2025 Jast-zsh | MIT License
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式