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

ユーザーとロール設定

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> のようになります。

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

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

  • MySQLクライアントとの互換性のために、パスワードをダブルSHA1ハッシュで指定できます。password_double_sha1_hex 要素内に配置します。

    例えば、<password_double_sha1_hex>08b4a0f1de6ad37da17359e592c8d74788a83eb0</password_double_sha1_hex> のようになります。

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

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

username/ssh-key

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

ssh-keygen で生成されたSSHキーが次のような形式である場合

ssh_key 要素は次のように期待されます。

他のサポートされているアルゴリズムには、ssh-rsa または ecdsa-sha2-nistp256 を使用します。

access_management

この設定は、ユーザーのSQL駆動型 アクセス制御とアカウント管理 の使用を有効または無効にします。

可能な値:

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

デフォルト値: 0。

grants

この設定により、選択されたユーザーに対して任意の権限を付与できます。 リストの各要素は、指定された受取人なしの GRANT クエリである必要があります。

例:

この設定は、dictionaries, access_management, named_collection_control, show_named_collections_secrets および allow_databases 設定と同時に指定することはできません。

user_name/networks

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

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

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

    例: 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> — ホスト名。

    例: 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から返される行を制限し、基本的な行レベルのセキュリティを実装できます。

以下の構成は、ユーザー user1table1 の行を SELECT クエリの結果としてのみ見ることができるように強制します。ここで、id フィールドの値は1000です。

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

ロール

user.xml 構成ファイルの roles セクションを使用して、任意の事前定義されたロールを作成できます。

roles セクションの構造:

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