ユーザーおよびロールの設定
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-ed25519 を 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 リクエストのすべての結果は、サーバーが再起動するまでキャッシュされます。
例
任意のネットワークからのユーザーへのアクセスを開放するには、次のように指定します:
ファイアウォールが適切に構成されていない限り、またはサーバーがインターネットに直接接続されていない限り、任意のネットワークからのアクセスを開放することは安全ではありません。
localhost からのアクセスのみを開放するには、次のように指定します:
user_name/profile
ユーザーに設定プロファイルを割り当てることができます。設定プロファイルは、users.xml ファイルの別セクションで構成されています。詳しくは 設定プロファイル を参照してください。
user_name/quota
クォータは、一定期間のリソース使用量を追跡または制限するのに役立ちます。クォータは users.xml 構成ファイルの quotas セクションで構成されます。
ユーザーに対してクォータセットを割り当てることができます。クォータ構成の詳細については、クォータ を参照してください。
user_name/databases
このセクションでは、現在のユーザーによって行われた SELECT クエリに対して ClickHouse が返す行を制限することができ、これにより基本的な行レベルのセキュリティを実装します。
例
以下の構成により、ユーザー user1 は SELECT クエリの結果として、id フィールドの値が 1000 の table1 の行のみを見ることができます。
filter は UInt8 型の値を生成する任意の表現である可能性があります。通常、比較や論理演算子を含みます。フィルターが 0 になる database_name.table1 の行はこのユーザーには返されません。フィルタリングは PREWHERE 操作と互換性がなく、WHERE→PREWHERE 最適化を無効にします。
ロール
user.xml 構成ファイルの roles セクションを使用して、任意のプリセットロールを作成できます。
roles セクションの構造:
これらのロールは users セクションのユーザーにも付与できます: