データベースユーザーの管理
このガイドでは、SQL コンソール内とデータベース内で直接データベースユーザーを管理する 2 通りの方法を説明します。
SQL コンソールのパスワードレス認証
SQL コンソールユーザーは各セッションごとに作成され、自動的に更新される X.509 証明書を使って認証されます。セッションが終了すると、そのユーザーは削除されます。監査目的のアクセスリストを作成する場合は、コンソールで対象サービスの Settings タブに移動し、データベース内に存在するデータベースユーザーに加えて、SQL コンソールからのアクセスも確認してください。カスタムロールが設定されている場合、ユーザーのアクセス権は、そのユーザー名で終わるロールに一覧表示されます。
SQL コンソールのユーザーとロール
基本的な SQL コンソールのロールは、Service Read Only 権限および Service Admin 権限を持つユーザーに割り当てることができます。詳細は、Manage SQL Console Role Assignments を参照してください。本ガイドでは、SQL コンソールユーザー向けにカスタムロールを作成する方法を説明します。
SQL コンソールユーザー向けにカスタムロールを作成し、汎用ロールを付与するには、次のコマンドを実行します。メールアドレスは、コンソール上のユーザーのメールアドレスと一致している必要があります。
データベース認証
データベースユーザー ID とパスワード
パスワードを安全に保護するために、ユーザーアカウントを作成する際は SHA256_hash メソッドを使用してください。ClickHouse データベースのパスワードは 12 文字以上である必要があり、英大文字・英小文字・数字および/または記号を含む複雑さ要件を満たさなければなりません。
管理者権限を持たないユーザーは自分でパスワードを設定できないため、アカウントをセットアップする前に、このツールなどのジェネレーターを使って自分のパスワードをハッシュ化し、そのハッシュ値を管理者に渡すようユーザーに依頼してください。
セキュアシェル (SSH) 認証を使用するデータベースユーザー
ClickHouse Cloud のデータベースユーザーに対して SSH 認証を設定します。
ssh-keygenを使用してキーペアを作成します。- 公開鍵を使用してユーザーを作成します。
- ユーザーにロールおよび/または権限を割り当てます。
- 秘密鍵を使用してサービスに対して認証を行います。
詳細な手順と例については、ナレッジベース内の「SSH キーを使用して ClickHouse Cloud に接続する方法」を参照してください。
データベース権限
SQL の GRANT ステートメントを使用して、サービスおよびデータベース内で次の設定を行います。
| Role | Description |
|---|---|
| Default | サービスへの完全な管理アクセス |
| Custom | SQL の GRANT ステートメントで構成する |
- データベースロールは累積されます。つまり、ユーザーが 2 つのロールのメンバーである場合、そのユーザーは両方のロールで許可されている権限の合計を利用できます。ロールを追加してもアクセス権が失われることはありません。
- データベースロールは他のロールに付与することができ、階層構造を形成します。ロールは、それがメンバーとなっている他のロールのすべての権限を継承します。
- データベースロールはサービスごとに一意であり、同一サービス内の複数のデータベースに適用できます。
以下の図は、ユーザーに権限を付与するさまざまな方法を示しています。

初期設定
データベースには default という名前のアカウントがあり、サービス作成時に自動的に追加され、default_role が付与されます。サービスを作成するユーザーには、サービス作成時に default アカウントに割り当てられる自動生成のランダムなパスワードが表示されます。このパスワードは初期セットアップ後は表示されませんが、後からコンソール内で Service Admin 権限を持つ任意のユーザーが変更できます。このアカウント、またはコンソール内で Service Admin 権限を持つアカウントは、いつでも追加のデータベースユーザーおよびロールを設定できます。
コンソールで default アカウントに割り当てられているパスワードを変更するには、左側の Services メニューからサービスにアクセスし、Settings タブに移動して Reset password ボタンをクリックします。
ユーザーによる操作がそのユーザー ID に紐づいて識別できるようにし、default アカウントをいわゆるブレークグラス用途(緊急時のみの利用)のために確保しておくために、個人に紐づく新しいユーザーアカウントを作成し、そのユーザーに default_role を付与することを推奨します。
ユーザーは、SHA256 ハッシュジェネレーターや Python の hashlib のような関数を使用して、適切な複雑さを備えた 12 文字以上のパスワードを SHA256 文字列に変換し、その文字列をパスワードとしてシステム管理者に渡すことができます。これにより、管理者が平文パスワードを閲覧・取り扱う必要がなくなります。
SQL コンソールユーザーを含むデータベースアクセス一覧
次の手順を使用して、組織内の SQL コンソールおよびデータベース全体の完全なアクセス一覧を生成できます。
SQL コンソールにアクセスできる Console ユーザーに権限一覧を関連付ける
この一覧を、SQL コンソールにアクセスできる Console ユーザーに関連付けます。
a. Console を開きます。
b. 対象のサービスを選択します。
c. 左側で「Settings」を選択します。
d. 「SQL console access」セクションまでスクロールします。
e. データベースにアクセスできるユーザー数を示すリンク There are # users with access to this service. をクリックして、ユーザー一覧を表示します。
ウェアハウスユーザー
ウェアハウスユーザーは、同じウェアハウス内のサービス間で共有されます。詳細については、ウェアハウスのアクセス制御を参照してください。