SQL データベースの詳細なアクセス制御を構成する
適用対象:✅ Microsoft Fabric SQL データベース
Fabric ワークスペース ロールと項目のアクセス許可を使用すると、データベースへの完全な管理アクセスまたは読み取り専用アクセスを必要とするデータベース ユーザーの認可を簡単に設定できます。
きめ細かいデータベース アクセスを構成するには、SQL のアクセス制御 (データベースレベル ロール、SQL のアクセス許可、または行レベルのセキュリティ (RLS)) を使用します。
Fabric ポータルを使用して、データベースレベル ロールのメンバーシップを管理し、一般的なデータ アクセス シナリオ用のカスタム (ユーザー定義) ロールを定義できます。 Transact-SQL を使用して、すべての SQL アクセス制御を構成できます。
Fabric ポータルから SQL データベースレベル ロールを管理する
Fabric SQL データベースに対してデータベースレベル ロールの管理を開始するには:
- Fabric ポータルでデータベースに移動して開きます。
- メイン メニューから [セキュリティ] を選択し、[SQL セキュリティの管理] を選択します。
- [SQL セキュリティの管理] ページが開きます。
新しいカスタム (ユーザー定義) データベースレベル ロールを追加して、そのメンバーがデータベースの特定のスキーマ内のオブジェクトにアクセスできるようにするには:
- [SQL セキュリティの管理] ページで、[新規] を選択します。
- [新しいロール] ページで、ロール名を入力します。
- 1 つ以上のスキーマを選択します。
- 選択したスキーマごとに、ロール メンバーに付与するアクセス許可を選択します。 選択、挿入、更新、削除のアクセス許可は、スキーマ内のすべてのテーブルとビューに適用されます。 実行のアクセス許可は、スキーマ内のすべてのストアド プロシージャと関数に適用されます。
- [保存] を選択します。
カスタムのデータベースレベル ロールの定義を変更するには:
- [SQL セキュリティの管理] ページで、カスタム ロールを選択し、[編集] を選択します。
- データベース スキーマのロール名またはロールのアクセス許可を変更します。
Note
[SQL セキュリティの管理] ページでは、5 つのスキーマレベルのアクセス許可のみを表示および管理できます。 スキーマ以外のオブジェクトに対してロール
SELECT
、INSERT
、UPDATE
、DELETE
、またはEXECUTE
を付与した場合、または GRANT Transact-SQL ステートメントを使用してロールに他のアクセス許可を付与した場合は、[SQL セキュリティの管理] ページには表示されません。 - [保存] を選択します。
カスタムのデータベースレベル ロールを削除するには:
- [SQL セキュリティの管理] ページでロールを選択し、[削除] を選択します。
- 確認を求められたら、もう一度 [削除] を選択します。
ロール メンバーの一覧を表示し、ロール メンバーを追加または削除するには:
- [SQL セキュリティの管理] ページで、組み込みのロールまたはカスタム ロールを選択し、[アクセスの管理] を選択します。
- ロール メンバーを追加するには:
- [ユーザー、グループ、またはアプリの追加] フィールドに名前を入力し、検索結果からユーザー、グループ、またはアプリを選択します。 これを繰り返して、他のユーザー、グループ、またはアプリを追加できます。
- [追加] を選択します。
- 追加するロール メンバーの一部に Fabric データベースに対する項目の読み取りアクセス許可がない場合は、[データベースの共有] ボタンが表示されます。 これを選択して [ユーザーにアクセス権を付与する] ダイアログを開き、[許可する] を選択してデータベースを共有します。 データベースに共有アクセス許可を付与すると、項目の読み取りアクセス許可をまだ持っていないロール メンバーにそれが付与されます。 SQL データベースの共有の詳細については、SQL データベースの共有とアクセス許可の管理に関する記事を参照してください。
重要
データベースに接続するには、ユーザーまたはアプリケーションは、SQL データベースレベル ロールのメンバーシップまたはデータベース内の SQL アクセス許可とは別に、Fabric データベースに対する項目の読み取りアクセス許可を持っている必要があります。
- ロール メンバーを削除するには:
- 削除するロール メンバーを選択します。
- [削除] を選択します。
- ロール メンバーを追加するには:
- [保存] を選択して、ロール メンバーの一覧への変更を保存します。
Note
データベースにユーザー オブジェクトがない新しいロール メンバーを追加すると、Fabric ポータルにより、ユーザーに代わって (CREATE USER (Transact-SQL) を使用して) ロール メンバーのユーザー オブジェクトが自動的に作成されます。 ロール メンバーがロールから削除された場合、Fabric ポータルによってデータベースからユーザー オブジェクトが削除されることはありません。
Transact-SQL を使用して SQL コントロールを構成する
Transact SQL を使用してユーザーまたはアプリケーションのアクセスを構成するには:
- ユーザーとアプリケーション、またはユーザーとアプリケーションが属する Microsoft Entra グループとデータベースを共有します。 データベースを共有すると、ユーザーとアプリケーションには、データベースへの接続に必要な、Fabric データベースに対する項目の読み取りアクセス許可が確実に付与されます。 詳細については、SQL データベースの共有とアクセス許可の管理に関する記事を参照してください。
- CREATE USER (Transact-SQL) と
FROM EXTERNAL PROVIDER
句を使用して、データベース内にユーザー、アプリケーション、またはそのグループのユーザー オブジェクトを作成します。 詳細については、Microsoft Entra ID のデータベース ユーザーの作成に関する記事を参照してください。 - 必要なアクセス制御を構成します。
- カスタム (ユーザー定義) データベースレベル ロールを定義します。 カスタム ロールの定義を管理するには、CREATE ROLE、ALTER ROLE、DROP ROLE を使用します。
- ALTER ROLE ステートメントの
ADD MEMBER
とDROP MEMBER
のオプションを使用して、ユーザー オブジェクトをカスタムまたは組み込み (固定) のロールに追加します。 - GRANT、REVOKE、DENY ステートメントを使用して、ユーザー オブジェクトの詳細な SQL アクセス許可を構成します。
- 行レベルのセキュリティ (RLS) を構成して、テーブル内の特定の行に対するアクセスをユーザー オブジェクトに許可または拒否します。