プリンシパルには、ロールベースのアクセス制御モデルを使用してリソースへのアクセス権が付与されます。ここで、割り当てられたセキュリティ ロールによってリソース アクセスが決定されます。
プリンシパルが操作を試みると、システムは承認チェックを実行して、操作を実行するアクセス許可を付与する少なくとも 1 つのセキュリティ ロールにプリンシパルが関連付けられていることを確認します。 承認チェックに失敗すると、操作が中止されます。
この記事に記載されている管理コマンドを使用して、データベース、テーブル、外部テーブル、具体化されたビュー、および関数のプリンシパルとそのセキュリティ ロールを管理できます。
注
AllDatabasesAdmin、AllDatabasesViewerのセキュリティ ロールは、セキュリティ ロール管理コマンドでは構成できません。 これらは、ワークスペース内の Admin ロールと Viewer ロールによってそれぞれ継承されます。
注
AllDatabasesAdmin、AllDatabasesViewer、AllDatabasesMonitorの 3 つのクラスター レベルのセキュリティ ロールは、セキュリティ ロール管理コマンドでは構成できません。
Azure portal で構成する方法については、「 クラスターのアクセス許可の管理」を参照してください。
管理コマンド
次の表では、セキュリティ ロールの管理に使用されるコマンドについて説明します。
| コマンド | 説明 |
|---|---|
.show |
指定されたロールを持つプリンシパルを一覧表示します。 |
.add |
ロールに 1 つ以上のプリンシパルを追加します。 |
.drop |
ロールから 1 つ以上のプリンシパルを削除します。 |
.set |
ロールをプリンシパルの特定の一覧に設定し、前のすべてのプリンシパルを削除します。 |
セキュリティ役割
次の表では、各ロールに付与されるアクセス レベルについて説明し、指定されたオブジェクトの種類内でロールを割り当てることができるかどうかを確認します。
| 役割 | 権限 | データベース | 表 | 外部テーブル | マテリアライズド・ビュー | Functions |
|---|---|---|---|---|---|---|
admins |
オブジェクトとサブオブジェクトを表示、変更、および削除します。 | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
users |
オブジェクトを表示し、新しいサブオブジェクトを作成します。 | ✔️ | ||||
viewers |
RestrictedViewAccess が有効になっていないオブジェクトを表示します。 | ✔️ | ||||
unrestrictedviewers |
RestrictedViewAccess がオンになっている場合でも、オブジェクトを表示します。 プリンシパルには、 admins、 viewers 、または users のアクセス許可も必要です。 |
✔️ | ||||
ingestors |
クエリにアクセスせずにオブジェクトにデータを取り込みます。 | ✔️ | ✔️ | |||
monitors |
スキーマ、操作、アクセス許可などのメタデータを表示します。 | ✔️ |
各スコープのセキュリティ ロールの詳細については、 Kusto ロールベースのアクセス制御に関するページを参照してください。
注
データベース内の一部のテーブルにのみ viewer ロールを割り当てることはできません。 プリンシパル ビューにテーブルのサブセットへのアクセス権を付与する方法に関するさまざまな方法については、「 テーブル ビューのアクセスの管理」を参照してください。
一般的なシナリオ
プリンシパル ロールを表示する
クラスター上の独自のロールを表示するには、次のコマンドを実行します。
イベントハウスで独自のロールを表示するには、次のコマンドを実行します。
.show cluster principal roles
リソースにロールを表示する
特定のリソースに割り当てられているロールを確認するには、関連するデータベースまたはリソースを含むデータベース内で次のコマンドを実行します。
// For a database:
.show database DatabaseName principal roles
// For a table:
.show table TableName principal roles
// For an external table:
.show external table ExternalTableName principal roles
// For a function:
.show function FunctionName principal roles
// For a materialized view:
.show materialized-view MaterializedViewName principal roles
リソース上のすべてのプリンシパルのロールを表示する
特定のリソースのすべてのプリンシパルに割り当てられているロールを表示するには、関連するデータベースまたはリソースを含むデータベース内で次のコマンドを実行します。
// For a database:
.show database DatabaseName principals
// For a table:
.show table TableName principals
// For an external table:
.show external table ExternalTableName principals
// For a function:
.show function FunctionName principals
// For a materialized view:
.show materialized-view MaterializedViewName principals
ヒント
where 演算子を使用して、特定のプリンシパルまたはロールで結果をフィルター処理します。
Von Bedeutung
プリンシパルがユーザーと同じテナントにある場合、その完全修飾名 (FQN) が表示されます。
プリンシパルがユーザーとは異なるテナントにある場合:
- 表示名に FQN が表示されません。
- 表示名は、プリンシパルが別のテナントからの名前であることを示します。 形式は
[User/Group/Application] from AAD tenant [Tenant Id]です。 - 識別情報を追加するには、プリンシパルにテナントのロールを割り当て、
Descriptionパラメーターを使用して識別の詳細を追加します。Descriptionは、出力の [メモ] 列に表示されます。
ロールの割り当てを変更する
データベース レベルとテーブル レベルでロールの割り当てを変更する方法の詳細については、「 データベース セキュリティ ロールの管理 」および 「テーブル セキュリティ ロールの管理」を参照してください。