セキュリティ ロールの概要
プリンシパルには、ロールベースのアクセス制御モデルを使用してリソースへのアクセス権が付与されます。このモデルでは、割り当てられたセキュリティ ロールによってリソース アクセスが決定されます。
プリンシパルが操作を試みると、システムは承認チェックを実行して、操作を実行するためのアクセス許可を付与する少なくとも 1 つのセキュリティ ロールにプリンシパルが関連付けられていることを確認します。 承認チェック失敗すると、操作が中止されます。
この記事に記載されている管理コマンドを使用して、データベース、テーブル、外部テーブル、具体化されたビュー、および関数のプリンシパルとそのセキュリティ ロールを管理できます。
注意
、、 の 3 つのクラスター レベルのAllDatabasesAdmin
AllDatabasesViewer
AllDatabasesMonitor
セキュリティ ロールは、セキュリティ ロール管理コマンドでは構成できません。 Azure portalで構成する方法については、「クラスターのアクセス許可を管理する」を参照してください。
管理コマンド
次の表では、セキュリティ ロールの管理に使用されるコマンドについて説明します。
コマンド | 説明 |
---|---|
.show |
指定したロールを持つプリンシパルをListsします。 |
.add |
ロールに 1 つ以上のプリンシパルを追加します。 |
.drop |
ロールから 1 つ以上のプリンシパルを削除します。 |
.set |
ロールをプリンシパルの特定の一覧に設定し、以前のすべてのプリンシパルを削除します。 |
セキュリティ ロール
次の表は、各ロールに付与されるアクセスレベルを示し、指定されたオブジェクトの種類内でロールを割り当てることができる場合のチェックを示しています。
Role | アクセス許可 | データベース | テーブル | 外部テーブル | 具体化されたビュー | 関数 |
---|---|---|---|---|---|---|
admins |
オブジェクトとサブオブジェクトを表示、変更、および削除します。 | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
users |
オブジェクトを表示し、新しいサブオブジェクトを作成します。 | ✔️ | ||||
viewers |
RestrictedViewAccess がオンになっていないオブジェクトを表示します。 | ✔️ | ||||
unrestrictedviewers |
RestrictedViewAccess がオンになっている場合でも、オブジェクトを表示します。 プリンシパルには、、または users のアクセス許可も必要admins viewers です。 |
✔️ | ||||
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 演算子を使用して、特定のプリンシパルまたはロールで結果をフィルター処理します。
ロールの割り当てを変更する
データベース レベルとテーブル レベルでロールの割り当てを変更する方法の詳細については、「データベース セキュリティ ロールの管理 」および「 テーブル セキュリティ ロールの管理」を参照してください。
関連コンテンツ
フィードバック
https://aka.ms/ContentUserFeedback」を参照してください。
以下は間もなく提供いたします。2024 年を通じて、コンテンツのフィードバック メカニズムとして GitHub の issue を段階的に廃止し、新しいフィードバック システムに置き換えます。 詳細については、「フィードバックの送信と表示