LoginSignup
10
8

More than 3 years have passed since last update.

Power BI 行レベルセキュリティー (RLS) の応用編

Last updated at Posted at 2019-06-05

各都道府県に営業所があり、所長、副所長、部長、課長、一般職の役職が在籍している場合以下の要件が求められる場合があります。

  1. 所長は自分が所属している営業所の全データを参照したい。
  2. 部長は自分が所属している営業所の、部長以下の役職のデータを参照したい。
  3. 一般職は自分のデータだけ参照。

このような場合、役職や営業所などで 「階層」 を作成してあげることで、実現が可能です。

サンプルデータ

社員ID アカウント 担当拠点 部署 役職
2001 Asan@contoso.onmicrosoft.com 名古屋 営業部・AA課 課長
1002 Bsan@contoso.onmicrosoft.com 名古屋 営業部・AA課 部長
1003 Csan@contoso.onmicrosoft.com 関東 営業部・BB課 部長
2004 Dsan@contoso.onmicrosoft.com 関東 営業部・BB課 課長
3005 Esan@contoso.onmicrosoft.com 関東 営業部・BB課 主任

※ 社員マスタ

日付 担当者 顧客 売上(千) 拠点
2019年5月1日 Csan@contoso.onmicrosoft.com 〇〇株式会社 500 関東
2019年5月1日 Asan@contoso.onmicrosoft.com 株式会社ABC 250 名古屋
2019年5月2日 Bsan@contoso.onmicrosoft.com グローバル XYZ 300 名古屋
2019年5月3日 Dsan@contoso.onmicrosoft.com ▼▼商店 50 関東
2019年5月4日 Bsan@contoso.onmicrosoft.com Contoso KK 700 名古屋
2019年5月5日 Csan@contoso.onmicrosoft.com DDD 株式会社 400 関東
2019年5月6日 Asan@contoso.onmicrosoft.com 〇〇株式会社 300 名古屋
2019年5月8日 Csan@contoso.onmicrosoft.com 株式会社ABC 200 関東
2019年5月10日 Asan@contoso.onmicrosoft.com グローバル XYZ 150 名古屋
2019年5月11日 Bsan@contoso.onmicrosoft.com ▼▼商店 400 名古屋
2019年5月11日 Dsan@contoso.onmicrosoft.com Contoso KK 350 関東
2019年5月12日 Bsan@contoso.onmicrosoft.com DDD 株式会社 800 名古屋
2019年5月13日 Csan@contoso.onmicrosoft.com ▼▼商店 50 関東
2019年5月15日 Asan@contoso.onmicrosoft.com Contoso KK 500 名古屋
2019年5月16日 Esan@contoso.onmicrosoft.com 〇〇商店 200 名古屋

※ 成績マスタ

社員マスタの加工

最初の社員マスタのままでは、階層を作成するためのデータが無いため [上司] という列を作成します。
※ 部長が一番上と設定しているので、部長の上司は空白です。
※ 上司は、自分より 1つ上の役職を設定します。

社員ID アカウント 担当拠点 部署 役職 上司
2001 Asan@contoso.onmicrosoft.com 名古屋 営業部・AA課 課長 1002
1002 Bsan@contoso.onmicrosoft.com 名古屋 営業部・AA課 部長
1003 Csan@contoso.onmicrosoft.com 関東 営業部・BB課 部長
2004 Dsan@contoso.onmicrosoft.com 関東 営業部・BB課 課長 1003
3005 Esan@contoso.onmicrosoft.com 関東 営業部・BB課 主任 2004

 役職の階層作成

社員マスタに [新しい列] にて、以下の計算式を追加します。
役職階層 = PATH([社員ID],[上司])
image.png
主任さんを例にすると、自分の ID が一番後ろに存在する状態です。
部長さんは、一番前且つ、自分のみ。

ロールの計算式

ロールの管理より、名簿に対し、下記の DAX 式を追加します。

ロールの管理
PATHCONTAINS(
'名簿1'[役職階層],
LOOKUPVALUE('名簿'[社員ID],'名簿'[アカウント],USERPRINCIPALNAME()))

結果

Dsan の場合
image.png

Bsan の場合
image.png

Esan の場合
image.png

あとがき

細かい設定については、以下リンク先を見ていただければと思います。
Power BI 勉強帳:行レベルセキュリティ(RLS)

10
8
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
10
8