SharePoint リストでは、その行の作成者が誰かによって権限の指定を行うことができます。一方、Dataverse では、 SharePoint リストよりも複雑なデータレベルのセキュリティを設けることができます。
その権限の範囲の指定、権限の深さの指定について違いがありますので本記事ではそちらを紹介します。
目次
SharePoint リストと Dataverse の権限制御
SharePoint リスト
以下は、SharePoint リストでの詳細設定から、リストアイテムの読み取りアクセス権をユーザー本人が作成したアイテムか、全てのアイテムにするかを設定できる画面です。また、作成と編集についても同じ設定を行うことができます。

Dataverse
Dataverse では更に複雑な要件に対応できるようになっています。以下のように、読み取りできるのは自分が所属している部署配下の行、書き込み(編集)できるのはユーザーが所属している部署の行、削除はできない、というようにマトリックス形式で設定できます。
これを用いれば、部署を設定して、その部署の行のみを見ることができる、ただし、削除はさせないようにするなどの権限設定を行うことができます。

権限の範囲
権限の範囲がどのようなレベルで行うことができるのかを比較した表が以下です。
- SharePoint リストでの権限の管理は、基本的には2段階で、すべてまたは自分が作成者の行です。
- Dataverse には部署の概念があり、階層的に段階をカスタマイズすることができます。
- Dataverse では所属する部署、所属する部署配下のレベルを設定することもできます。
- Dataverse では、作成者の他に行の所有者の列があり、後からレコードの所有者を別のユーザーやチームに変更することができます。
権限制御の比較項目 | SharePoint | Dataverse |
---|---|---|
すべての行 | ||
自身が作成者の行 | ||
自身が所有者の行 | ||
所有者が同じ部署の行 | ||
所有者が同じ部署配下の行 |
Dataverse での権限の範囲を実際の画面を見ながら掘り下げてみましょう。権限の範囲は部署 (チーム) に基づいて決定されます。
例えば、以下のように Dataverse に保存された注文データがあったとします。この所有者がもし、商品開発部の人が所有者として割り当てられていれば、その行は同じく商品開発部のものという判定になります。

権限の深さ
Power Platform 管理センターにてセキュリティロールを設定することができます。設定したいテーブルに対して、CRUD操作を以下の範囲で割り当てることができます。これが権限の深さに当たります。

例えば、読み取りを部署とすると、同じ部署の人だけが読み取りできます。

部署は以下とすると、その組織よりも下の部署があれば、その配下の組織のデータも読み取りできます。

ユーザーとすると、自分が所有者の行のみを読み取りできます。

組織とすると、すべての行を読み取りすることができます。

なしの場合は、読み取りすることができません。

これを作成、読み取り、書き込み、削除、アペンドする、アペンドする先、割り当てる、共有について設定ができます。
SharePoint のセキュリティ制御
SharePoint リストをデータソースとして使う場合、気をつけなければならないのが権限の二重管理です。 私のブログをご覧になっている方は Power Apps キャンバスアプリのデータソースとして SharePoint リストを検討されている方が多いでしょう。そのような場合、以下の概念図を頭においておく必要があります。

SharePoint リスト画面があるために権限の二重管理が発生し、直接リストにアクセスすると本来与えたくないデータの一括ダウンロードや削除等の想定を超えた権限の処理を行わせてしまうリスクが有ります。
そのため、SharePoint リストをデータソースとして利用するアプリはビジネス上削除や一括ダウンロードされたとしても問題がないような重要でないデータ特性のシナリオに活用しましょう。
例: 社用車の管理、掲示板 (顧客管理、製品管理、稟議などには使わない)
このようなシナリオの例は、私の書籍で紹介しています。ご興味がありましたらご参考ください。
SharePoint リスト、サイト自体
SharePoint リストのセキュリティは、Microsoft Entra ID セキュリティグループやSharePoint グループ等により、SharePoint サイトごと、またその配下のリスト毎の権限を設定することができます。
以下のようなパターンから選択したり、カスタマイズ権限を作成することができます。

SharePoint レコード単位
レコードのセキュリティとしては前述した通りレコードの作成者のみが見ることができるという制御を行うことができます。作成者のみのため、上司が見るという運用はできませんし、作成者を変更することはできません。
SharePoint リストの注意点
SharePoint 側デビューの制限ができない場合でも、Power Apps の画面上にて表示する項目を関数 (Power Fx) を利用して制限することができます。
しかしながら、SharePoint リストをPower Apps のデータソースとするときの注意点は、そもそもPower Apps 用のデータソースとしてSharePoint リストが開発されておらずSharePoint としての専用のビューが用意されています。
Dataverse セキュリティ
Dataverse のテーブルへのアクセス権
テーブル及びその権限の深さを設定したセキュリティロールを作成することができます。そのセキュリティロールをユーザーまたは部署 (チーム) に設定することができます。
運用の観点では部署 (チーム) に設定することがとても便利です。詳細はこちらで紹介しておりますのでご参考ください。

セキュリティロールは複数割当することができます。
複数のセキュリティロールを割り当てたときの動作は以下のとおりです。

複数のセキュリティロールを割り当てた場合、許可が強い判定が優先されます。
セキュリティロールの作成方法と割当方法は以下のとおりです。
Dataverse 階層セキュリティ
テーブル毎のセキュリティの他に、レコードごとのセキュリティを設定することができます。レコードには所有者という属性が必ず設定されており、どのユーザーまたはチームの持ち物なのかと言うのが管理されています。

所有者の変更は以下のように行うことができます。
ユーザーによって、上司の作成したレコードは表示はできるが編集ができない設定や、他の部署のレコードは表示のみで編集できないようにすることができます。

また、表示もさせないようにすることも設定することができます。
以下のレコードは例として階層セキュリティを設定して、部下は自分のレコードのみ表示できるが、上司のレコードは表示できないような設定をしています。


こちらの設定は、「ユーザーに対して所属する組織」を設定することで実現できます。
セキュリティを考え、部署を作成してユーザーに割り当てておきます。するとそのユーザーが作成したレコードは所属組織に自動で紐づくため、セキュリティが「セキュリティロールとの組み合わせ」で判定されます。

Dataverse for Teams のセキュリティ
Dataverse for Teams のセキュリティはDataverse とは完全に別で、Teams のチームと一致しています。

Dataverse for Teams ではチームに参加しているユーザーがDaataverse にアクセスできます。
まとめ
Dataverse は複雑なセキュリティ設定が可能で、最初設定は大変ですが休暇申請や人事評価等の個人情報を扱ったり、金額情報を扱うような重要な情報を扱うケースの利用に向いています。
必要なシナリオがでてきた場合、是非検討をしてみてください。