ClickHouse/docs/zh/operations/settings/settings-users.md

5.3 KiB
Raw Blame History

machine_translated machine_translated_rev toc_priority toc_title
true 72537a2d52 63 用户设置

用户设置

users 一节 user.xml 配置文件包含用户设置。

!!! note "信息" ClickHouse还支持 SQL驱动的工作流 用于管理用户。 我们建议使用它。

的结构 users 科:

<users>
    <!-- If user name was not specified, 'default' user is used. -->
    <user_name>
        <password></password>
        <!-- Or -->
        <password_sha256_hex></password_sha256_hex>

        <access_management>0|1</access_management>

        <networks incl="networks" replace="replace">
        </networks>

        <profile>profile_name</profile>

        <quota>default</quota>

        <databases>
            <database_name>
                <table_name>
                    <filter>expression</filter>
                <table_name>
            </database_name>
        </databases>
    </user_name>
    <!-- Other users settings -->
</users>

用户名称/密码

密码可以以明文或SHA256十六进制格式指定。

  • 以明文形式分配密码 (不推荐),把它放在一个 password 元素。

    例如, <password>qwerty</password>. 密码可以留空。

  • 要使用其SHA256散列分配密码请将其放置在 password_sha256_hex 元素。

    例如, <password_sha256_hex>65e84be33532fb784c48129675f9eff3a682b27168c0ea744b2cf58ee02337c5</password_sha256_hex>.

    如何从shell生成密码的示例:

      PASSWORD=$(base64 < /dev/urandom | head -c8); echo "$PASSWORD"; echo -n "$PASSWORD" | sha256sum | tr -d '-'
    

    结果的第一行是密码。 第二行是相应的SHA256哈希。

  • 为了与MySQL客户端兼容密码可以在双SHA1哈希中指定。 放进去 password_double_sha1_hex 元素。

    例如, <password_double_sha1_hex>08b4a0f1de6ad37da17359e592c8d74788a83eb0</password_double_sha1_hex>.

    如何从shell生成密码的示例:

      PASSWORD=$(base64 < /dev/urandom | head -c8); echo "$PASSWORD"; echo -n "$PASSWORD" | sha1sum | tr -d '-' | xxd -r -p | sha1sum | tr -d '-'
    

    结果的第一行是密码。 第二行是相应的双SHA1哈希。

访问管理

此设置启用禁用使用SQL驱动 访问控制和帐户管理 对于用户。

可能的值:

  • 0 — Disabled.
  • 1 — Enabled.

默认值0。

用户名称/网络

用户可以从中连接到ClickHouse服务器的网络列表。

列表中的每个元素都可以具有以下形式之一:

  • <ip> — IP address or network mask.

    例: 213.180.204.3, 10.0.0.1/8, 10.0.0.1/255.255.255.0, 2a02:6b8::3, 2a02:6b8::3/64, 2a02:6b8::3/ffff:ffff:ffff:ffff::.

  • <host> — Hostname.

    示例: example01.host.ru.

    要检查访问将执行DNS查询并将所有返回的IP地址与对等地址进行比较。

  • <host_regexp> — Regular expression for hostnames.

    示例, ^example\d\d-\d\d-\d\.host\.ru$

    要检查访问a DNS PTR查询 对对等体地址执行,然后应用指定的正则表达式。 然后对PTR查询的结果执行另一个DNS查询并将所有接收到的地址与对等地址进行比较。 我们强烈建议正则表达式以$结尾。

DNS请求的所有结果都将被缓存直到服务器重新启动。

要从任何网络打开用户的访问权限,请指定:

<ip>::/0</ip>

!!! warning "警告" 从任何网络开放访问是不安全的,除非你有一个防火墙正确配置或服务器没有直接连接到互联网。

若要仅从本地主机打开访问权限,请指定:

<ip>::1</ip>
<ip>127.0.0.1</ip>

user_name/profile

您可以为用户分配设置配置文件。 设置配置文件在单独的部分配置 users.xml 文件 有关详细信息,请参阅 设置配置文件.

用户名称/配额

配额允许您在一段时间内跟踪或限制资源使用情况。 配额在配置 quotas 一节 users.xml 配置文件。

您可以为用户分配配额。 有关配额配置的详细说明,请参阅 配额.

用户名/数据库

在本节中您可以限制ClickHouse返回的行 SELECT 由当前用户进行的查询,从而实现基本的行级安全性。

示例

以下配置强制该用户 user1 只能看到的行 table1 作为结果 SELECT 查询,其中的值 id 场是1000。

<user1>
    <databases>
        <database_name>
            <table1>
                <filter>id = 1000</filter>
            </table1>
        </database_name>
    </databases>
</user1>

filter 可以是导致任何表达式 UInt8-键入值。 它通常包含比较和逻辑运算符。 从行 database_name.table1 其中不会为此用户返回为0的筛选结果。 过滤是不兼容的 PREWHERE 操作和禁用 WHERE→PREWHERE 优化。

原始文章