データベース セキュリティ ロールの管理
プリンシパルには、ロールベースのアクセス制御モデルを使用してリソースへのアクセス権が付与されます。ここで、割り当てられたセキュリティ ロールによってリソース アクセスが決定されます。
この記事では、管理コマンドを使用して既存のセキュリティ ロールを表示しデータベース レベルでプリンシパルの関連付けをセキュリティ ロール追加および削除する方法について説明します。
アクセス許可
これらのコマンドを実行するには、少なくとも Database Admin アクセス許可が必要です。
Note
データベースを削除するには、少なくとも Contributor Azure Resource Manager (ARM) アクセス許可が必要です。 ARM アクセス許可を割り当てるには、「 Azure portal を使用して Azure ロールを割り当てるを参照してください。
データベース レベルのセキュリティ ロール
次の表に、データベース レベルで使用可能なセキュリティ ロールと、各ロールに付与されるアクセス許可を示します。
ロール | アクセス許可 |
---|---|
admins |
データベースエンティティとデータベースエンティティを表示および変更します。 |
users |
データベースを表示し、新しいデータベース エンティティを作成します。 |
viewers |
RestrictedViewAccess がオンになっていないデータベース内のテーブルを表示します。 |
unrestrictedviewers |
RestrictedViewAccess が有効になっている場合でも、データベース内のテーブルを表示します。 プリンシパルには、 admins 、 viewers 、または users のアクセス許可も必要です。 |
ingestors |
クエリにアクセスせずにデータベースにデータを取り込みます。 |
monitors |
スキーマ、操作、アクセス許可などのデータベース メタデータを表示します。 |
Note
データベース内の一部のテーブルにのみ viewer
ロールを割り当てることはできません。 プリンシパル ビューにテーブルのサブセットへのアクセス権を付与する方法に関するさまざまな方法については、「 管理テーブル ビューのアクセス権を参照してください。
既存のセキュリティ ロールを表示する
プリンシパルを追加または削除する前に、 .show
コマンドを使用して、データベースに既に設定されているすべてのプリンシパルとロールを含むテーブルを表示できます。
構文
すべてのロールを表示するには:
.show
database
DatabaseName principals
ロールを表示するには:
.show
database
DatabaseName principal
roles
構文規則について詳しく知る。
パラメーター
件名 | タイプ | Required | 説明 |
---|---|---|---|
DatabaseName | string |
✔️ | プリンシパルを一覧表示するデータベースの名前。 |
例
次のコマンドは、 Samples
データベースにアクセスできるすべてのセキュリティ プリンシパルを一覧表示します。
.show database Samples principals
出力例
ロール | PrincipalType | PrincipalDisplayName | PrincipalObjectId | PrincipalFQN |
---|---|---|---|---|
データベース サンプル管理者 | Microsoft Entra ユーザー | Abbi Atkins | cd709aed-a26c-e3953dec735e | aaduser=abbiatkins@fabrikam.com |
セキュリティ ロールへのプリンシパル関連付けの追加と削除
このセクションでは、セキュリティ ロールとの間でプリンシパルを追加および削除するための構文、パラメーター、および例を示します。
構文
Action database
DatabaseName Role (
Principal [,
Principal...] )
[skip-results
] [ Description ]
構文規則について詳しく知る。
パラメーター
件名 | タイプ | Required | 説明 |
---|---|---|---|
操作 | string |
✔️ | コマンド .add 、 .drop 、または .set 。.add は指定したプリンシパルを追加し、 .drop は指定したプリンシパルを削除し、 .set は指定したプリンシパルを追加し、前のすべてのプリンシパルを削除します。 |
DatabaseName | string |
✔️ | プリンシパルを追加するデータベースの名前。 |
Role | string |
✔️ | プリンシパルに割り当てるロール。 データベースの場合、ロールは admins 、 users 、 viewers 、 unrestrictedviewers 、 ingestors 、または monitors にすることができます。 |
プリンシパル | string |
✔️ | 1 つ以上のプリンシパルまたはマネージド ID。 マネージド ID を参照するには、マネージド ID オブジェクト ID またはマネージド ID クライアント (アプリケーション) ID を使用して "アプリ" 形式を使用します。 これらのプリンシパルを指定する方法のガイダンスについては、「 Microsoft Entra プリンシパルとグループの参照を参照してください。 |
skip-results |
string |
指定した場合、コマンドはデータベース プリンシパルの更新された一覧を返しません。 | |
説明 | string |
.show コマンドの使用時に表示される変更を説明するテキスト。 |
名前 | タイプ | Required | 説明 |
---|---|---|---|
操作 | string |
✔️ | コマンド .add 、 .drop 、または .set 。.add は指定したプリンシパルを追加し、 .drop は指定したプリンシパルを削除し、 .set は指定したプリンシパルを追加し、前のすべてのプリンシパルを削除します。 |
DatabaseName | string |
✔️ | プリンシパルを追加するデータベースの名前。 |
Role | string |
✔️ | プリンシパルに割り当てるロール。 データベースの場合、これは admins 、 users 、 viewers 、 unrestrictedviewers 、 ingestors 、または monitors にすることができます。 |
プリンシパル | string |
✔️ | 1 つ以上のプリンシパル。 これらのプリンシパルを指定する方法のガイダンスについては、「 Microsoft Entra プリンシパルとグループの参照を参照してください。 |
skip-results |
string |
指定した場合、コマンドはデータベース プリンシパルの更新された一覧を返しません。 | |
説明 | string |
.show コマンドの使用時に表示される変更を説明するテキスト。 |
Note
プリンシパルの一覧ではなく、none
を含む .set
コマンドは、指定されたロールのすべてのプリンシパルを削除します。
例
次の例では、セキュリティ ロールの 追加、 セキュリティ ロールの削除、同じコマンドでセキュリティ ロールの追加と削除を する方法について説明します。
.add を使用してセキュリティ ロールを追加する
次の例では、Samples
データベースのusers
ロールにプリンシパルを追加します。
.add database Samples users ('aaduser=imikeoein@fabrikam.com')
次の例では、Samples
データベースのviewers
ロールにアプリケーションを追加します。
.add database Samples viewers ('aadapp=4c7e82bd-6adb-46c3-b413-fdd44834c69b;fabrikam.com')
.drop を使用してセキュリティ ロールを削除する
次の例では、Samples
データベースのadmins
ロールからグループ内のすべてのプリンシパルを削除します。
.drop database Samples admins ('aadGroup=SomeGroupEmail@fabrikam.com')
新しいセキュリティ ロールを追加し、.set を使用して古いロールを削除する
次の例では、既存のviewers
を削除し、指定されたプリンシパルをSamples
データベースのviewers
として追加します。
.set database Samples viewers ('aaduser=imikeoein@fabrikam.com', 'aaduser=abbiatkins@fabrikam.com')
.set を使用してすべてのセキュリティ ロールを削除する
次のコマンドは、Samples
データベース上のすべての既存のviewers
を削除します。
.set database Samples viewers none