メインコンテンツまでスキップ
メインコンテンツまでスキップ

ユーザーとロールの設定

users.xml 設定ファイルの users セクションにはユーザー設定が含まれています。

注記

ClickHouse はユーザー管理のための SQL駆動型ワークフロー もサポートしています。使用をお勧めします。

users セクションの構造:

user_name/password

パスワードはプレーンテキストまたはSHA256(16進数形式)で指定できます。

  • プレーンテキストでパスワードを指定するには(推奨されません)、password 要素において指定します。

    例: <password>qwerty</password>。パスワードは空白でもかまいません。

  • SHA256ハッシュを使用してパスワードを指定するには、password_sha256_hex 要素において指定します。

    例: <password_sha256_hex>65e84be33532fb784c48129675f9eff3a682b27168c0ea744b2cf58ee02337c5</password_sha256_hex>

    シェルからパスワードを生成する方法の例:

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

    結果の最初の行がパスワードで、2行目が対応するSHA256ハッシュです。

  • MySQLクライアントとの互換性のために、パスワードを二重SHA1ハッシュで指定することもできます。それはpassword_double_sha1_hex 要素に指定します。

    例: <password_double_sha1_hex>08b4a0f1de6ad37da17359e592c8d74788a83eb0</password_double_sha1_hex>

    シェルからパスワードを生成する方法の例:

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

    結果の最初の行がパスワードで、2行目が対応する二重SHA1ハッシュです。

username/ssh-key

この設定はSSHキーでの認証を可能にします。

ssh-keygen によって生成されたSSHキーが次のようであるとします:

ssh_key 要素は次のようであることが期待されます:

他のサポートされているアルゴリズムの場合、ssh-ed25519ssh-rsa または ecdsa-sha2-nistp256 に置き換えてください。

access_management

この設定は、ユーザーに対してSQL駆動型の アクセス制御およびアカウント管理 を使用するかどうかを有効または無効にします。

可能な値:

  • 0 — 無効。
  • 1 — 有効。

デフォルト値: 0。

grants

この設定は、選択されたユーザーにさまざまな権利を付与することを可能にします。 リストの各要素は、指定されたグランティーなしの GRANT クエリである必要があります。

例:

この設定は、dictionariesaccess_managementnamed_collection_controlshow_named_collections_secrets 、および allow_databases 設定と同時に指定することはできません。

user_name/networks

ユーザーがClickHouseサーバーに接続できるネットワークのリスト。

リストの各要素は次のいずれかの形式を持つことができます:

  • <ip> — IPアドレスまたはネットマスク。

    例: 213.180.204.310.0.0.1/810.0.0.1/255.255.255.02a02:6b8::32a02:6b8::3/642a02:6b8::3/ffff:ffff:ffff:ffff::

  • <host> — ホスト名。

    例: example01.host.ru

    アクセスを確認するためにDNSクエリが実行され、返されたすべてのIPアドレスがピアアドレスと比較されます。

  • <host_regexp> — ホスト名用の正規表現。

    例: ^example\d\d-\d\d-\d\.host\.ru$

    アクセスを確認するためには、ピアアドレスに対して DNS PTR クエリ が実行され、その後指定された正規表現が適用されます。次に、PTRクエリの結果に対して別のDNSクエリが実行され、受信したすべてのアドレスがピアアドレスと比較されます。正規表現の末尾に $ が来ることを強く推奨します。

DNSリクエストのすべての結果は、サーバーが再起動するまでキャッシュされます。

任意のネットワークからのユーザーへのアクセスを開放するには、次のように指定します:

注記

ファイアウォールが正しく構成されていない限り、またはサーバーがインターネットに直接接続されていない限り、任意のネットワークからのアクセスを開放するのは安全でありません。

ローカルホストからのみアクセスを開放するには、次のように指定します:

user_name/profile

ユーザーに設定プロファイルを割り当てることができます。設定プロファイルは users.xml ファイルの別のセクションに設定されています。詳細については、設定プロファイルを参照してください。

user_name/quota

クォータは、特定の期間にわたるリソース使用率を追跡または制限できるようにします。クォータは users.xml 設定ファイルの quotas セクションで設定されます。

ユーザーに対してクォータセットを割り当てることができます。クォータ設定の詳細な説明については、クォータを参照してください。

user_name/databases

このセクションでは、現在のユーザーが行う SELECT クエリに対してClickHouseが返す行を制限し、基本的な行レベルのセキュリティを実装できます。

以下の設定により、ユーザー user1SELECT クエリの結果として table1 の行を id フィールドの値が 1000 の場合のみ見ることができます。

filterUInt8 型の値を返す任意の式であり、大抵は比較演算子と論理演算子を含みます。フィルターの結果が 0 となる database_name.table1 の行は、このユーザーには返されません。フィルタリングは PREWHERE 操作と互換性がなく、WHERE→PREWHERE 最適化を無効にします。

ロール

user.xml 設定ファイルの roles セクションを使用して、任意のプリセットのロールを作成できます。

roles セクションの構造:

これらのロールは users セクションからユーザーに付与することもできます: