Skip to content

Commit 1e86c71

Browse files
committed
Copy Files From Source Repo (2025-09-08 17:16)
1 parent b192183 commit 1e86c71

5 files changed

Lines changed: 1310 additions & 40 deletions

Instructions/Labs/06d-secure-data-warehouse.md

Lines changed: 30 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ lab:
88

99
Microsoft Fabric のアクセス許可と詳細な SQL アクセス許可を組み合わせて使用し、ウェアハウスのアクセスとユーザーのアクセス許可を管理します。 この演習では、詳細なアクセス許可、列レベル セキュリティ、行レベル セキュリティ、動的データ マスクを使用してデータをセキュリティで保護します。
1010

11-
> ****:このラボの演習を完了するには、2 人のユーザーが必要です。1 人のユーザーにワークスペース管理者ロールを割り当て、もう 1 人にワークスペース ビューアー ロールを割り当てる必要があります。 ワークスペースにロールを割り当てるには、「[ワークスペースへのアクセスを許可する](https://learn.microsoft.com/fabric/get-started/give-access-workspaces)」を参照してください。
11+
> ****:このラボの演習を完了するには、2 人のユーザーが必要です。1 人のユーザーにワークスペース管理者ロールを割り当て、もう 1 人にワークスペース ビューアー ロールを割り当てる必要があります。 ワークスペースにロールを割り当てるには、「[ワークスペースへのアクセスを許可する](https://learn.microsoft.com/fabric/get-started/give-access-workspaces)」を参照してください。 同じ組織内で 2 つ目のアカウントにアクセスできない場合でも、ワークスペース管理者として演習を実行し、ワークスペース ビューアー アカウントとして実行される手順を省略できます。ワークスペース ビューアー アカウントがアクセスできる内容については、演習のスクリーンショットを参照します。
1212
1313
このラボの所要時間は約 **45** 分です。
1414

@@ -67,28 +67,12 @@ Fabric でデータを操作する前に、Fabric 試用版を有効にしてワ
6767
6868
3. 次に、**[エクスプローラー]** ペインで **[スキーマ]** > **[dbo]** > **[テーブル]** の順に展開し、**Customer** テーブルが作成されていることを確認してください。 `SELECT` ステートメントは、マスクされていないデータを返します。これは、ワークスペースの作成者は、マスクされていないデータを表示できるワークスペース管理者ロールのメンバーであるためです。
6969
70-
4. **ビューアー** ワークスペース ロールのメンバーであるテスト ユーザーとして接続し、次の T-SQL ステートメントを実行します。
71-
72-
```T-SQL
73-
SELECT * FROM dbo.Customers;
74-
```
75-
70+
>**注**:**ビューアー** ワークスペース ロールのメンバーであるテスト ユーザーとして接続し、**Customers** テーブルで `SELECT` ステートメントを実行すると、マスクされたデータに関する次の結果が表示されます。
71+
72+
![マスクされたデータを含む Customers テーブルのスクリーンショット。](./Images/masked-table.png)
73+
7674
テスト ユーザーには UNMASK アクセス許可が付与されていないため、FirstName、Phone、Email 列に対して返されるデータはマスクされます。これらの列は、`CREATE TABLE` ステートメント内でマスクを使用するものとして定義されているためです。
7775
78-
5. 自分自身のワークスペース管理者として再接続し、次の T-SQL を実行して、テスト ユーザー用のデータのマスクを解除します。 `<username>@<your_domain>.com` を、現在のテスト対象の**ビューアー** ワークスペース ロールのメンバーであるユーザーの名前に置き換えます。
79-
80-
```T-SQL
81-
GRANT UNMASK ON dbo.Customers TO [<username>@<your_domain>.com];
82-
```
83-
84-
6. もう一度テスト ユーザーとして接続し、次の T-SQL ステートメントを実行します。
85-
86-
```T-SQL
87-
SELECT * FROM dbo.Customers;
88-
```
89-
90-
今度はテスト ユーザーに `UNMASK` アクセス許可が付与されているため、データはマスクされていない状態で返されます。
91-
9276
## 行レベル セキュリティを適用する
9377
9478
行レベル セキュリティ (RLS) を使用すると、ID またはクエリを実行するユーザーのロールに基づいて行へのアクセスを制限できます。 この演習では、インライン テーブル値関数として定義されたセキュリティ ポリシーとセキュリティ述語を作成して、行へのアクセスを制限します。
@@ -151,7 +135,7 @@ Fabric でデータを操作する前に、Fabric 試用版を有効にしてワ
151135
```
152136
153137
6. ** [&#9655; 実行]** ボタンを使用して SQL スクリプトを実行します
154-
7. 次に、**[エクスプローラー]** ペインで **[スキーマ]** > **[rls]** > **[関数]** の順に展開し、関数が作成されていることを確認します。
138+
7. 次に、**[エクスプローラー]** ペインで **[スキーマ]** > **[rls]** > **[関数]** > **[テーブル値関数]** の順に展開し、関数が作成されていることを確認します。
155139
8. Sales テーブルの `INSERT` ステートメントで、`<username1>@<your_domain>.com` を置き換えたユーザーとして Fabric にログインします。 次の T-SQL を実行して、そのユーザーとしてログインしていることを確認します。
156140
157141
```T-SQL
@@ -164,6 +148,8 @@ Fabric でデータを操作する前に、Fabric 試用版を有効にしてワ
164148
SELECT * FROM dbo.Sales;
165149
```
166150
151+
![RLS を含む Sales テーブルのスクリーンショット。](./Images/rls-table.png)
152+
167153
## 列レベルのセキュリティを実装する
168154
169155
列レベル セキュリティを使用すると、テーブル内の特定の列にアクセスできるユーザーを指定できます。 これは、テーブルに対して `GRANT` または `DENY` ステートメントを発行し、このときに列の一覧とそれらの読み取りが可能または可能でないユーザーまたはロールを指定することで実装されます。 アクセス管理を効率化するには、アクセス許可を個々のユーザーでなくロールに割り当てます。 この演習では、テーブルを作成し、テーブル上の列のサブセットへのアクセスを許可し、制限された列は自分以外のユーザーが表示できないことをテストします。
@@ -184,23 +170,25 @@ Fabric でデータを操作する前に、Fabric 試用版を有効にしてワ
184170
(2341, 6785, '222222222222222'),
185171
(3412, 7856, '333333333333333');
186172
SELECT * FROM dbo.Orders;
187-
```
173+
```
188174
189-
3. テーブル内の列を表示するためのアクセス許可を拒否します。 T-SQL ステートメントを使用すると、`<username>@<your_domain>.com` は Orders テーブル内の CreditCard 列を表示できなくなります。 `DENY` ステートメントで、`<username>@<your_domain>.com` をワークスペースに対する**ビューアー** アクセス許可を持つシステム内のユーザー名に置き換えます。
175+
3. テーブル内の列を表示するためのアクセス許可を拒否します。 T-SQL ステートメントを使用すると、`<username1>@<your_domain>.com` は Orders テーブル内の CreditCard 列を表示できなくなります。 `DENY` ステートメントで、`<username1>@<your_domain>.com` をワークスペースに対する**ビューアー** アクセス許可を持つシステム内のユーザー名に置き換えます。
190176
191-
```T-SQL
192-
DENY SELECT ON dbo.Orders (CreditCard) TO [<username>@<your_domain>.com];
193-
```
177+
```T-SQL
178+
DENY SELECT ON dbo.Orders (CreditCard) TO [<username1>@<your_domain>.com];
179+
```
194180
195181
4. 選択したアクセス許可を禁止したユーザーとして Fabric にログインして、列レベル セキュリティをテストします。
196182
197-
5. Orders テーブルに対してクエリを実行し、列レベル セキュリティが予期したとおりに動作することを確認します。 次のクエリでは、OrderID 列と CustomerID 列のみが返され、CreditCard 列は返されません。
183+
5. Orders テーブルに対してクエリを実行し、列レベル セキュリティが想定通りに機能していることを確認します。
198184
199185
```T-SQL
200186
SELECT * FROM dbo.Orders;
201187
```
202188
203-
CreditCard 列へのアクセスが制限されているため、エラーが表示されます。 OrderID フィールドと CustomerID フィールドのみを選択してみてください。このクエリは成功します。
189+
![エラーがある Orders テーブル クエリのスクリーンショット。](./Images/cls-table.png)
190+
191+
CreditCard 列へのアクセスが制限されているため、エラーが表示されます。 OrderID フィールドと CustomerID フィールドのみを選択してみてください。このクエリは成功します。
204192
205193
```T-SQL
206194
SELECT OrderID, CustomerID from dbo.Orders
@@ -210,11 +198,11 @@ Fabric でデータを操作する前に、Fabric 試用版を有効にしてワ
210198
211199
Fabric にはアクセス許可モデルがあり、これを使用すると、ワークスペース レベルおよび項目レベルでデータへのアクセスを制御できます。 Fabric ウェアハウス内でセキュリティ保護可能なリソースを使用してユーザーが実行できる操作をより細かく制御する必要がある場合は、標準の SQL データ制御言語 (DCL) の `GRANT`、`DENY`、`REVOKE` の各コマンドを使用できます。 この演習では、オブジェクトを作成し、それらを `GRANT` と `DENY` を使用してセキュリティで保護し、その後クエリを実行して、詳細なアクセス許可の適用の効果を確かめます。
212200
213-
1. 前の演習で作成したウェアハウスで、**[新規 SQL クエリ]** ドロップダウンを選択します。 **[空白]** ヘッダーで、**[新規 SQL クエリ]** を選択します。
201+
1. 前の演習で作成したウェアハウスで、**[新規 SQL クエリ]** ドロップダウンを選択します。 **[新しい SQL クエリ]** を選択します。
214202
215203
2. ストアド プロシージャとテーブルを作成します。 次に、このプロシージャを実行し、テーブルに対してクエリを実行します。
216204
217-
```T-SQL
205+
```T-SQL
218206
CREATE PROCEDURE dbo.sp_PrintMessage
219207
AS
220208
PRINT 'Hello World.';
@@ -236,24 +224,26 @@ Fabric にはアクセス許可モデルがあり、これを使用すると、
236224
EXEC dbo.sp_PrintMessage;
237225
GO
238226
SELECT * FROM dbo.Parts
239-
```
227+
```
240228
241-
3. 次に、**ワークスペース ビューアー** ロールのメンバーであるユーザーに、テーブルに対する `DENY SELECT` アクセスを許可し、同じユーザーに対してプロシージャで `GRANT EXECUTE` を実行します。 `<username>@<your_domain>.com` を**ワークスペース ビューアー** ロールのメンバーであるご利用の環境のユーザー名に置き換えます。
229+
3. 次に、**ワークスペース ビューアー** ロールのメンバーであるユーザーに、テーブルに対する `DENY SELECT` アクセスを許可し、同じユーザーに対してプロシージャで `GRANT EXECUTE` を実行します。 `<username1>@<your_domain>.com` を**ワークスペース ビューアー** ロールのメンバーであるご利用の環境のユーザー名に置き換えます。
242230
243-
```T-SQL
244-
DENY SELECT on dbo.Parts to [<username>@<your_domain>.com];
231+
```T-SQL
232+
DENY SELECT on dbo.Parts to [<username1>@<your_domain>.com];
245233
246-
GRANT EXECUTE on dbo.sp_PrintMessage to [<username>@<your_domain>.com];
247-
```
234+
GRANT EXECUTE on dbo.sp_PrintMessage to [<username1>@<your_domain>.com];
235+
```
248236
249-
4. Fabric に、`DENY` の代わりに `GRANT` ステートメントと `<username>@<your_domain>.com` ステートメントで指定したユーザーとしてサインインします。 次に、ストアド プロシージャを実行し、テーブルに対してクエリを実行して、適用した詳細なアクセス許可をテストします。
237+
4. Fabric に、`DENY` の代わりに `GRANT` ステートメントと `<username1>@<your_domain>.com` ステートメントで指定したユーザーとしてサインインします。 次に、ストアド プロシージャを実行し、テーブルに対してクエリを実行して、適用した詳細なアクセス許可をテストします。
250238
251-
```T-SQL
239+
```T-SQL
252240
EXEC dbo.sp_PrintMessage;
253241
GO
254242
255243
SELECT * FROM dbo.Parts;
256-
```
244+
```
245+
246+
![エラーがある Parts テーブル クエリのスクリーンショット。](./Images/grant-deny-table.png)
257247
258248
## リソースをクリーンアップする
259249

0 commit comments

Comments
 (0)