Clickhouse 配置中文详细介绍 第三章 users.xml

 这篇文章介绍 Clickhouse 的 users.xml 用户配置 

相关文章:

        Clickhouse 配置中文详细介绍 第一章 config.xml

        Clickhouse 配置中文详细介绍 第二章 metrika.xml

<clickhouse>
    <!-- 另请参阅 users.d/ 目录中的文件,其中的设置可以被覆盖。 -->
 

    <!-- ================================================================================================================================================================ -->


    <!-- 
        profiles: 该标签用于定义一组用户或查询的配置文件。
    -->
    <profiles>


        <!-- 这是默认的配置文件,未指定其他配置文件的用户或查询将使用此配置。 -->
        <default>

            <!-- 该参数设置查询的最大大小为 2097152 字节(约 2MB)。超过此大小的查询将被拒绝。 -->
            <max_query_size>2097152</max_query_size>

        </default>
 

        <!-- 这是一个专门用于只读操作的配置文件 -->
        <readonly>

            <!-- 与默认配置文件相同,查询的最大大小为 2097152 字节(约 2MB)。 -->
            <max_query_size>2097152</max_query_size>

            <!-- 将该值设置为 1,表示该配置文件只能执行只读查询,如 SELECT 语句,而不允许执行写操作(如 INSERT、UPDATE 等)。 -->
            <readonly>1</readonly>

        </readonly>


    </profiles>
 

    <!-- ================================================================================================================================================================ -->

    <!-- Users and ACL. 这里可以配置多个用户 -->
    <users>


        <!-- 如果没有指定用户名,用户是 'default' -->
        <default>
            <!-- 
                另请参阅 users.d 目录中的文件,其中可以覆盖密码。
 
                密码可以以明文或 SHA256(十六进制格式)指定。

                如果您想以明文形式指定密码(不推荐),请将其放在<password>标签中。
                示例:
                    <password>qwerty</password>。
                    密码可以为空。

                如果要指定 SHA256,请将其放在<password_sha256_hex>元素中。
                示例:
                    <password_sha256_hex>65e84be33532fb784c48129675f9eff3a682b27168c0ea744b2cf58ee02337c5</password_sha256_hex>
                    SHA256 的限制:无法使用 MySQL JS 客户端连接到 ClickHouse(截至 2019 年 7 月)。

                如果要指定 double SHA1,请将其放在<password_double_sha1_hex>元素中。
                示例:
                    <password_double_sha1_hex>e395796d6546b1b65db9d665cd43f0e858dd4303</password_double_sha1_hex>

                如果您想指定先前定义的 LDAP 服务器(请参阅主配置中的<ldap_servers>)进行身份验证,
                将其名称放在<ldap>元素内的<server>元素中。
                示例:
                    <ldap>
                        <server>my_ldap_server</server>
                    </ldap>

                如果您想通过 Kerberos 验证用户身份(假设 Kerberos 已启用,请参阅主配置中的<kerberos>),
                放置<kerberos>元素而不是<password>(和类似)元素。
                启动程序的规范主体名称的名称部分必须与用户名匹配,身份验证才能成功。
                您还可以将<realm>元素放置在<kerberos>元素内,以进一步限制仅对这些请求进行身份验证
                
                示例:<kerberos />
                示例:<kerberos><realm>EXAMPLE.COM</realm></kerberos>

                如何生成合适的密码,执行: 
                    PASSWORD=$(base64 < /dev/urandom | head -c8); 
                    echo "$PASSWORD"; 
                    echo -n "$PASSWORD" | sha256sum | tr -d '-'
                第一行是密码,第二行是对应的 SHA256。
                

                如何生成 double SHA1,执行:
                    PASSWORD=$(base64 < /dev/urandom | head -c8); 
                    echo "$PASSWORD"; 
                    echo -n "$PASSWORD" | sha1sum | tr -d '-' | xxd -r -p | sha1sum | tr -d '-'
                第一行是密码,第二行是对应的 double SHA1。
            -->
            <password>pwd123456789</password>
 

            <!-- 
                networks 标签用于指定允许访问 ClickHouse 服务器的网络地址和主机

                1. 开放访问,表示允许来自所有 IP 地址的访问,在生产环境中应该谨慎使用
                    <ip>::/0</ip>
                    
                2. 仅允许本地访问,如果你只想允许本地访问(即来自本机的访问)
                    <ip>::1</ip>         IPv6 地址,表示本地环回地址。
                    <ip>127.0.0.1</ip>   IPv4 地址,表示本地环回地址。

                3. 允许特定 IP 地址或网络,如果你只想允许特定的 IP 地址或网络范围访问
                    <ip>213.180.204.3</ip>
                    <ip>10.0.0.1/8</ip>
                    <ip>10.0.0.1/255.255.255.0</ip>

                4. 允许特定主机,可以通过主机名来指定允许的主机:
                    <host>server01.clickhouse.com</host>

                5. 允许匹配特定正则表达式的主机,ClickHouse 会先执行 DNS PTR 查询获取主机名,然后使用正则表达式检查主机名是否符合规则。
                    <host_regexp>^server\d\d-\d\d-\d\.clickhouse\.com$</host_regexp>

                样例:
                    允许来自 IP 范围 192.168.1.0/24 和主机名以 myserver 开头的所有请求
                    <networks>
                        <ip>192.168.1.0/24</ip>
                        <host_regexp>^myserver.*\.example\.com$</host_regexp>
                    </networks>

                注意事项
                    DNS缓存:所有 DNS 请求的结果都会被缓存,直到服务器重启。这有助于提高性能,但也可能导致在主机名解析发生变化时出现延迟。
                    安全性:在生产环境中,应尽可能限制对 ClickHouse 的访问,仅允许可信的 IP 地址或网络访问,以提高安全性。
            -->
            <networks>
                <ip>::/0</ip>
            </networks>
 
            <!-- 关联最上方的 <profile> 标签下的  <default> 标签中的配置,这个配置文件中的设置将应用于 default 用户的所有操作 -->
            <profile>default</profile>
 
             <!-- 关联最下方的 <quota> 标签下的  <default> 标签中的配置 -->
            <quota>default</quota>
 
            <!-- User can create other users and grant rights to them. -->
            <!-- <access_management>1</access_management> -->
        </default>
 
 

        <!-- 自定义一个 Clickhouse 的用户 -->
        <super_admin>

            <!-- 密码,可以明文、SHA256(十六进制格式)、 double SHA1 等等 -->
            <password>pw123456789</password>

            <!-- 
                <networks>: 该标签用于定义用户可以从哪些网络访问 ClickHouse 服务器。
                    incl="networks":表示从其他配置文件或某个配置段中引入名为 "networks" 的网络配置。
                    replace="replace":表示当前配置中的网络范围会替换掉引入的网络配置。

                <ip>::/0</ip>:
                该配置表示允许从任何 IPv6 地址访问 ClickHouse 服务器。::/0 是一个表示所有 IPv6 地址的通配符,类似于 IPv4 中的 0.0.0.0/0。
            -->
            <networks incl="networks" replace="replace">
                <ip>::/0</ip>
            </networks>

            <!-- 关联最上方的 <profile> 标签下的  <default> 标签中的配置 -->
            <profile>default</profile>

            <!-- 关联最下方的 <quota> 标签下的  <default> 标签中的配置 -->
            <quota>default</quota>

            <!-- 
                控制用户是否有权限创建其他用户并授予他们权限。如果设置为 1,表示当前用户可以管理其他用户,包括创建、修改和删除用户,以及分配或撤销权限。
                启用后可能的操作:
                    创建用户: 具备该权限的用户可以创建新用户,并为这些新用户设置密码、配置文件、配额等。
                    管理权限: 该用户可以为其他用户分配数据库表的读写权限,甚至可以管理其他用户的访问级别。
                    删除用户: 如果某个用户不再需要访问 ClickHouse 系统,具有管理权限的用户可以删除该用户。
            -->
            <access_management>1</access_management>

        </super_admin>
    
 
    </users>
 


    <!-- ================================================================================================================================================================ -->


    <!-- 
        quotas 根标签,用于定义所有配额策略。每个配额策略可以应用到不同的用户组或单个用户。
        default 定义了一个名为 default 的配额策略。这个策略可以应用到用户配置中,用来限制用户的资源使用。
    -->
    <quotas>
        <!-- Name of quota. -->
        <default>
            <!-- 时间间隔的限制。您可以指定许多具有不同限制的间隔. -->
            <interval>
                <!-- 配额时间间隔,单位为秒,此处为1小时. -->
                <duration>3600</duration>
                <!-- 每小时最多允许执行 N 个查询. -->
                <queries>0</queries>
                <!-- 每小时最多允许 N 个错误 -->
                <errors>0</errors>
                <!-- 每小时最多读取 N 行数据 -->
                <result_rows>0</result_rows>
                 <!-- 每小时最多读取 N bytes 数据 -->
                <result_bytes>0</result_bytes> 
                <!-- 每小时最多扫描 1 亿行 -->
                <read_rows>0</read_rows>
                <!-- 每小时最多使用 N 秒的查询执行时间 -->
                <execution_time>0</execution_time>
            </interval>
        </default>
    </quotas>



</clickhouse>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值