レコードへのアクセスの決定方法

Dataverse で特定のレコードへのアクセスを取得するには、さまざまな方法があります。 テーブルを使用して特定のアクション (作成、読み取り、書き込み、削除、追加、追加先、割り当て、共有) を実行できるようにするために、特権チェックとアクセス チェックの 2 つの主要なチェックが実行されます。

特権チェック

特権チェックは、テーブルのレコードに対して特定のアクションを実行するために通過する必要がある最初の障壁です。 特権チェックは、ユーザーがそのテーブルに必要な特権を持っていることを検証します。 それぞれのテーブルには、デフォルトでもカスタムでも、そのタイプのレコードとの対話機能を提供するさまざまな特権があります。

たとえばアカウントの場合、特権は次のとおりです。

特権 内容
作成 新しいレコードを作成するために必要です。 作成できるレコードは、セキュリティ ロールで定義されているアクセス許可のアクセス レベルによって異なります。
読み取り レコードを開いて内容を表示するために必要です。 読み取ることができるレコードは、セキュリティ ロールで定義されているアクセス許可のアクセス レベルによって異なります。
書き込み レコードを変更するために必要です。 変更できるレコードは、セキュリティ ロールで定義されているアクセス許可のアクセス レベルによって異なります。
削除 レコードを完全に削除するために必要です。 削除できるレコードは、セキュリティ ロールで定義されているアクセス許可のアクセス レベルによって異なります。
追加 現在のレコードを別のレコードに関連付けるために必要です。 たとえば、ユーザーがメモに対する追加権限を持っている場合、営業案件にメモを添付することができます。 追加できるレコードは、セキュリティ ロールで定義されているアクセス許可のアクセス レベルによって異なります。
多対多の関係がある場合は、関連付けまたは関連付け解除の対象となる両方のテーブルに対する追加権限を持っている必要があります。
追加先 レコードを現在のレコードに関連付けるために必要です。 たとえば、ユーザーが営業案件に対する追加先権限を持っている場合、ユーザーは営業案件にメモを追加することができます。 追加できるレコードは、セキュリティ ロールで定義されているアクセス許可のアクセス レベルによって異なります。
割り当て レコードの所有権を別のユーザーに与えるために必要です。 割り当てることができるレコードは、セキュリティ ロールで定義されているアクセス許可のアクセス レベルによって異なります。
共有 自分のアクセス権を保持したまま、レコードへのアクセス権を別のユーザーに与えるために必要です。 共有できるレコードは、セキュリティ ロールで定義されているアクセス許可のアクセス レベルによって異なります。

レコードに対してアクションを実行するには、ユーザーはロールを通じて直接必要な特権が割り当てられているか、特権が割り当てられたセキュリティ ロールを持つチームのメンバーである必要があります。 そうでない場合、ユーザーは、アクションを実行するために必要な特権を持っていないことを示すアクセス拒否エラーを受け取ります。

たとえば、ユーザーが取引先企業レコードを作成するシナリオでは、ユーザーは、ユーザーまたはユーザーが属するチームに割り当てられたセキュリティ ロールを通じて作成特権を持っている必要があります。

Note

セキュリティ ロールを作成または編集する場合、特定のアクセス レベルでそのロールに特権が付与されます。 アクセス レベルは特権チェックでは考慮されず、特権チェックに合格した場合にアクセス チェックで行われます。

アクセス チェック

特権チェックに合格した場合に、アクセス チェックが実行されます。 アクセス チェックは、ユーザーが実行しようとしているアクションを実行するために必要な特権を持っているかを検証します。

ユーザーが特定のレコードに対してアクションを実行するためのアクセス権を持つことができる 4 つの異なる方法があります。 これらを以下に示します。

  • 企業形態
  • ロール アクセス
  • 共有アクセス
  • 階層アクセス

重要

これらはすべてアクセス チェック中にチェックされるため、ユーザーは複数の方法でレコードに対して必要なアクションを実行するためのアクセス権を持っている可能性があります。

所有権

ユーザーは、対象のレコードを所有しているか、レコードを所有しているチームに属しているため、特定のレコードに対してアクセス権を持つことができます。 どちらの場合も、どのアクセス レベルもレコードが属する部署に関係なく、アクセス権があれば十分です。 特権チェックはすでに合格しているため、これはユーザーがアクションを実行するための適切なアクセス権を持っていることを意味します。

Note

ユーザーがレコードを所有するチームに属している場合、ユーザーもレコードへのアクセス権を持っています。

ロール アクセス

ユーザーは、保持しているセキュリティ ロールにより、レコードに対してアクションを実行するためのアクセス権を持つことができます。 この場合、ロールが持つ特権のアクセス レベルが考慮されます。 所有権のサポート案件でカバーされている、ユーザーではないさまざまなアクセス レベルに対応する 4 つの主要なシナリオがあります。

   
レコードは、ユーザーまたはユーザーがメンバーであるチームに属します この場合、ユーザーは、少なくともユーザー レベルのアクセス権限が割り当てられた役割を持つチームを持っているか、チームに属している必要があります。 *下記の メモ を参照してください。
レコードはユーザーと同じ部署に属している この場合、ユーザーは、少なくとも部署レベルのアクセス権限が割り当てられたロールを持つチームを持っているか、チームに属している必要があります。
レコードは、ユーザーがメンバーであるチームと同じ部署に属している この場合、ユーザーは、少なくとも部署レベルのアクセス権限が割り当てられたロールを持つチームを持っているか、チームに属している必要があります。
レコードは、ユーザーの部署の子孫である部署に属している この場合、ユーザーは、少なくとも Parent:Child 部署アクセス権限が割り当てられた役割を持つチームを持っているか、チームに属している必要があります。
レコードは、ユーザーの部署の子孫である部署、またはユーザーがメンバーであるチームの部署の子孫に属している この場合、ユーザーは、少なくとも部署配下のアクセス権限が割り当てられたロールを持つチームを持っているか、チームに属している必要があります。
レコードは、ユーザーの部署の子孫ではない部署に属している この場合、ユーザーは、組織レベルのアクセス権限が割り当てられたロールを持つチームを持っているか、チームに属している必要があります。

Note

*基本レベルのアクセス ユーザー特権を持つチームに割り当てられたロールの場合、ロールの継承構成も影響します。 チームのメンバーの特権の継承チーム特権のみに設定されている場合、ユーザーはチームが所有するレコードに対してのみその特権を使用できます。 詳細については、チーム メンバーの権限継承 を参照してください。

メンバーの権限継承

共有アクセス

これを可能にする明示的なロールを割り当てずにレコードにアクセスする別の方法は、共有アクセスによるものです。 共有アクセスは、適切な共有権限を持つユーザーがユーザー、チーム、または組織とレコードを共有したときに取得されます。 ユーザーがレコードへ共有アクセス権を持つことができる 5 つの方法があります。

   
レコードがユーザーと直接共有された 特定のアクションを実行するためにレコードがユーザーと共有されている場合、ユーザーが特権チェックに合格していれば、ユーザーはそのアクションを実行するためのアクセス権を持つことができます。
関連するレコードがユーザーと直接共有された 次のシナリオは、レコード A がレコード B に関連付けられている場合に発生します。ユーザーがレコード A に対して特定のアクションを実行するための共有アクセス権を持っている場合、ユーザーが特権チェックに合格していれば、レコード B に対して同じアクションを実行するための継承されたアクセス権を持つことができます。
レコードがユーザーが所属するチームと共有された 一連のアクションを実行するためにレコードがチームと共有されている場合、特権チェックに合格していれば、そのチームに属しているユーザーはそれらのアクションを実行するためのアクセス権を持つことができます。
関連するレコードがユーザーが所属するチームと共有された 次のシナリオは、レコード A がレコード B に関連付けられている場合に発生します。レコード A が一連のアクションを実行するためにチームと共有され、レコード A がレコード B に関連付けられている場合、特権チェックに合格していれば、そのチームに属するユーザーはレコード A と B の両方でこれらのアクションを実行するためのアクセス権を持つことができます。
レコードが組織全体と共有された 一連のアクションを実行するためにレコードが組織と共有されている場合、特権チェックに合格していれば、その組織に属しているすべてのユーザーはそれらのアクションを実行することができます。

階層アクセス

階層アクセスは、その組織でそのテーブルに対して階層セキュリティ管理が有効であり、ユーザーがマネージャーである場合にのみ行われます。

この場合、次の両方が満たされていれば、ユーザーはレコードへのアクセス権を持つことができます。

  • 管理者は、アクセス レベルの部署または部署配下を持つチームを通じて、または直接割り当てられたセキュリティ ロールを持っています。
  • さらに、次のいずれを使用できます:
    • レコードは直属の部下が所有しています。
    • 直属の部下は所有者チームのメンバーです。
    • レコードは、直属の部下と必要なアクションを実行するために共有されました。
    • レコードは、直属の部下が属しているチームと必要なアクションを実行するために共有されました。

レコードのアクセス チェック

Web クライアントに表示されるレコードごとに、ユーザーはコマンド バーの アクセスのチェック オプションを使用して、レコードへのアクセスがどのように許可されたかを確認できます。 ユーザーは、レコードへのアクセス権を持つ他のユーザーとそれぞれのアクセス レベルも確認できます。

アクセス権のあるユーザー 機能を使用するために構成する環境データベースの設定は 2 つあります。 OrganizationSettingsEditor ツールをインストール し、以下を true に設定します:

  • IsAccessCheckerAllUsersEnabled: これにより、管理者は行にアクセスできるユーザーを確認できます。
  • IsAccessCheckerNonAdminAllUsersEnabled: これにより、管理者、レコードの所有者、および行にアクセスできるユーザーが、アクセスできるユーザーを確認できます。

参照

セキュリティ ロールおよび特権
ユーザーの作成
アクセスを管理するためのセキュリティ ロールを作成または編集する
ビデオ: アクセス機能の確認