Share via


セキュリティ ロールの概要

プリンシパルには、ロールベースのアクセス制御モデルを使用してリソースへのアクセス権が付与されます。このモデルでは、割り当てられたセキュリティ ロールによってリソース アクセスが決定されます。

プリンシパルが操作を試みると、システムは承認チェックを実行して、操作を実行するためのアクセス許可を付与する少なくとも 1 つのセキュリティ ロールにプリンシパルが関連付けられていることを確認します。 承認チェック失敗すると、操作が中止されます。

この記事に記載されている管理コマンドを使用して、データベース、テーブル、外部テーブル、具体化されたビュー、および関数のプリンシパルとそのセキュリティ ロールを管理できます。

注意

、、 の 3 つのクラスター レベルのAllDatabasesAdminAllDatabasesViewerAllDatabasesMonitorセキュリティ ロールは、セキュリティ ロール管理コマンドでは構成できません。 Azure portalで構成する方法については、「クラスターのアクセス許可を管理する」を参照してください。

管理コマンド

次の表では、セキュリティ ロールの管理に使用されるコマンドについて説明します。

コマンド 説明
.show 指定したロールを持つプリンシパルをListsします。
.add ロールに 1 つ以上のプリンシパルを追加します。
.drop ロールから 1 つ以上のプリンシパルを削除します。
.set ロールをプリンシパルの特定の一覧に設定し、以前のすべてのプリンシパルを削除します。

セキュリティ ロール

次の表は、各ロールに付与されるアクセスレベルを示し、指定されたオブジェクトの種類内でロールを割り当てることができる場合のチェックを示しています。

Role アクセス許可 データベース テーブル 外部テーブル 具体化されたビュー 関数
admins オブジェクトとサブオブジェクトを表示、変更、および削除します。 ✔️ ✔️ ✔️ ✔️ ✔️
users オブジェクトを表示し、新しいサブオブジェクトを作成します。 ✔️
viewers RestrictedViewAccess がオンになっていないオブジェクトを表示します。 ✔️
unrestrictedviewers RestrictedViewAccess がオンになっている場合でも、オブジェクトを表示します。 プリンシパルには、、または users のアクセス許可も必要adminsviewersです。 ✔️
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 演算子を使用して、特定のプリンシパルまたはロールで結果をフィルター処理します。

ロールの割り当てを変更する

データベース レベルとテーブル レベルでロールの割り当てを変更する方法の詳細については、「データベース セキュリティ ロールの管理 」および「 テーブル セキュリティ ロールの管理」を参照してください。