Teamsで構築するPower Appsアプリ(以下Power Apps for Teams)とDataverse for Teamsのテーブルへの権限設定について調べたのでメモ。
Power Apps for TeamsからDataverse for Teamsのテーブルへの権限設定を考える
Power Apps for Teamsを構築/共有した際のDataverse for Teamsへの権限設定を考える際、以下2つの要素を抑える必要がある。
- Teamsでの役割
- Dataverse for Teamsのテーブルへのアクセス許可
まず「Teamsでの役割(以下チーム ロール)」には以下の4種類があって、
- 所有者
- メンバー
- ゲスト
- アクセス許可を持つ同僚
この辺で確認可能。
※「アクセス許可を持つ同僚」はちょっと特別でPower Apps for Teamsを共有したユーザーたちのことを指す。
※「アクセス許可を持つ同僚」はちょっと特別でPower Apps for Teamsを共有したユーザーたちのことを指す。
そして「Dataverse for Teamsのテーブルへのアクセス許可」には以下の5種類があって、
- 完全なアクセス(フル アクセス)
- 共同作業
- 参照
- 非公開
- なし
それぞれこんな感じ。
※ちなみにどのレコードが誰のレコードか?は各レコードの列「Owner」で管理されている。
「チーム ロール」に対して「どのアクセス許可」を当てるかがDataverse for Teamsのテーブルへの権限設定になるんだけど、実際にやってみた方が早そうなのでサンプルアプリを作って試してみた。
サンプルアプリのイメージ
まずはこんなM365グループがあるとして、
このお偉方で使用する「休暇管理アプリ」を作るとする。
このアプリに対して、
- 各アクセス許可を割り当てられたユーザーの動作
- お偉方M365グループ以外のグループへのアプリの共有
のやり方を見ていく。
アクセス許可「完全なアクセス」のユーザー
まず、チームロールが「所有者」のユーザーへはアクセス許可「完全なアクセス」が自動で割り当てられる。
そのためTeamsの所有者でログインすれば、こんな感じで新しいレコードを作ったり、
自分のレコードを消したり編集したりできるのはもちろん、
他のユーザーのレコードであっても勝手に編集したり消したりできる。
アクセス許可「共同作業」のユーザー
続いてチーム ロール「メンバー」のアクセス許可を「共同作業」に変更し、動作を確認する。
[ビルド]タブからアクセス許可を編集したいテーブルを選んで、
[アクセス許可を管理する]をクリックする。
そしたら[メンバー]のアクセス許可を[共同作業]にしてあげれば準備完了。
するとチームロール「メンバー」のごりらさんは、自分の休暇申請(レコード)は作れるし、他の人の休暇申請を見ることもできるけど、他人の休暇申請を消そうとすると、
こんな感じで「権限がない」エラーが出て他の人のレコードは消すことはできない。
アクセス許可「非公開」のユーザー
おまけでチーム ロール「メンバー」のアクセス許可を「非公開」に変更すると、
ごりらさんは自分の休暇申請しか見ることができなくなる。
※休暇申請の提出は可能。
※休暇申請の提出は可能。
少し長くなってしまったので今回はここまで。後編では
- Power Apps for Teamsアプリの共有のしかた
- 残りのDataverse for Teamsのテーブルへのアクセス許可
について記載。
コメント