ユーザーとロール設定
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から返される行を制限し、基本的な行レベルのセキュリティを実装できます。
例
以下の構成は、ユーザー user1
が table1
の行を SELECT
クエリの結果としてのみ見ることができるように強制します。ここで、id
フィールドの値は1000です。
filter
は UInt8-型の値を生成する任意の式にすることができます。通常は比較と論理演算子を含みます。filter
が 0 である database_name.table1
の行は、このユーザーには返されません。フィルタリングは PREWHERE
操作と互換性がなく、WHERE→PREWHERE
の最適化を無効にします。
ロール
user.xml
構成ファイルの roles
セクションを使用して、任意の事前定義されたロールを作成できます。
roles
セクションの構造:
これらのロールは、users
セクションのユーザーにも付与することができます: