Admin ユーザー
default という admin ユーザーが作成されます。パスワードはサービス作成時に設定され、Admin ロールを持つ ClickHouse Cloud ユーザーであればリセットできます。
ClickHouse Cloud サービスに追加の SQL ユーザーを作成する場合、それらのユーザーには SQL の username と password が必要です。管理者レベルの privileges を付与する場合は、新しいユーザーにロール default_role を割り当ててください。たとえば、ユーザー clickhouse_admin を追加する場合は次のとおりです。
default ユーザーとしては実行されません。代わりに、sql-console:${cloud_login_email} という名前のユーザーとして実行されます。ここで、cloud_login_email は現在クエリを実行しているユーザーのメールアドレスです。これらの自動生成された SQL Console ユーザーには、default ロールが付与されます。パスワードレス認証
default_role と同じ権限を持つ sql_console_admin と、読み取り専用権限を持つ sql_console_read_only です。
Admin ユーザーにはデフォルトで sql_console_admin ロールが割り当てられているため、特に変更はありません。一方、sql_console_read_only ロールを使うと、Admin 以外のユーザーに対して、任意のインスタンスへの読み取り専用アクセスまたはフルアクセスを付与できます。このアクセスは Admin が設定する必要があります。これらのロールは、インスタンスごとの要件に合わせて GRANT または REVOKE コマンドで調整でき、加えた変更は永続的に保持されます。
きめ細かなアクセス制御
sql_console_*ロールをユーザーに割り当てる前に、sql-console-role:<email>ネームスペースに対応する、SQL Consoleのユーザー固有のデータベースロールを作成しておく必要があります。例:
sql_console_sa_role や sql_console_pm_role のようなロールを作成して特定のユーザーに付与するなど、より複雑なアクセス制御の構成が可能になります。例えば:
管理者権限を確認する
default ユーザーからログアウトし、clickhouse_admin ユーザーで再度ログインします。
以下はすべて正常に実行できるはずです。
非管理者ユーザー
準備
サンプルのデータベース、テーブル、行を作成する
テスト用データベースを作成する
テーブルを作成する
テーブルにサンプル行を追加する
テーブルを確認する
Create column_user
Create row_user
ロールの作成
- カラムや行など、異なる権限に対応するロールを作成します
- ロールに権限を付与します
- 各ロールにユーザーを割り当てます
このロールのユーザーが database db1 の table1 で column1 のみを参照できるよう制限するロールを作成します:
column1 の参照を許可する権限を設定します
ユーザー column_user を column1_users ロールに追加します
このロールのユーザーが選択された行のみを参照できるよう制限するロールを作成します。この例では、column1 に A を含む行のみです
row_user を A_rows_users ロールに追加します
column1 の値が A の場合にのみ参照を許可するポリシーを作成します
database と table に対する権限を設定します
他のロールが引き続きすべての行にアクセスできるよう、明示的な権限を付与します
確認
カラム制限付きユーザーでロール権限をテストする
`clickhouse_admin` ユーザーで ClickHouse client にログインします
admin ユーザーでデータベース、テーブル、およびすべての行へのアクセスを確認します。
`column_user` ユーザーで ClickHouse client にログインします
すべてのカラムを指定して SELECT をテストします
id と column1 のみであるため、アクセスは拒否されます指定されていて、かつ許可されているカラムのみを使った SELECT クエリを確認します:
行制限付きユーザーでロール権限をテストする
`row_user` を使用して ClickHouse client にログインする
表示される行を確認する
column1 の値が B の行は除外されているはずです。ユーザーとロールの変更
role1 が column1 に対する SELECT のみを許可し、role2 が column1 と column2 に対する SELECT を許可している場合、ユーザーは両方のカラムにアクセスできます。
管理者アカウントを使用して、デフォルトロール付きで行とカラムの両方に制限をかけた新しいユーザーを作成する
`A_rows_users` ロールの既存の権限を取り消す
`A_row_users` ロールが `column1` のみを SELECT できるようにする
`row_and_column_user` で ClickHouse client にログインする
すべてのカラムでテストする:
許可されたカラムのみに絞ってテストする:
トラブルシューティング
ユーザーの権限とロールを一覧表示する
ClickHouse のロールを一覧表示する
ポリシーを表示
ポリシーの定義内容と現在の権限を確認する
ロール、ポリシー、ユーザーを管理するためのコマンド例
- 権限を削除する
- ポリシーを削除する
- ユーザーのロール割り当てを解除する
- ユーザーとロールを削除する