【Salesforce】スコープ設定ルールで意図した結果にならない時の設定値と処理順の確認

【Salesforce】スコープ設定ルールで意図した結果にならない時の設定値と処理順の確認
🛡️ 超解決

Salesforceでレコードの参照権限や編集権限が想定通りに動作しない場合、スコープ設定ルールの設定値や処理順が原因となっているケースは少なくありません。スコープ設定ルールとは、共有ルールや権限セットの割り当て範囲を定義する設定であり、そのスコープが誤っているとユーザーが必要なデータにアクセスできなくなったり、逆に本来見えないデータが見えてしまうことがあります。本記事では、スコープ設定ルールが想定と異なる場合に確認すべき設定値と処理順について、具体的な手順とともに解説します。

【要点】この記事で確認すること

  • 最初に見る場所: 設定 > 共有設定 > 共有ルール の一覧と各ルールのスコープ定義、および権限セットの割り当て先(ユーザー、ロール、公開グループ)
  • 切り分けの軸: ユーザー単位の権限(プロファイル・権限セット)とレコード単位のアクセス(共有ルール・ロール階層・手動共有・Apex共有)のどちらが問題か
  • 注意点: 共有ルールのスコープは「ロールおよび下位ロール」「ロールとその下位ロール」「特定の公開グループ」「テリトリー」など複数の選択肢があり、意図した範囲と合致しているか慎重に確認する必要があります。

ADVERTISEMENT

スコープ設定ルールとは何か

Salesforceにおけるスコープ設定ルールとは、主に共有ルールと権限セットの割り当て範囲を指します。共有ルールは、特定のレコードを他のユーザーと共有するためのルールで、共有対象のレコード所有者(ソース)とアクセス権を与えるユーザー(ターゲット)を定義します。このとき、ソースとターゲットの範囲を「スコープ」として設定します。例えば「ロールおよび下位ロール」を選択すると、そのロールに属するユーザーとその下位ロールのユーザーが対象になります。

権限セットのスコープ設定は、権限セットを割り当てる際の対象ユーザーの絞り込みです。権限セットはプロファイルを変更せずに追加権限を付与できる仕組みで、割り当て先として「ユーザー」「プロファイル」「ロール」「公開グループ」などを指定できます。このスコープ設定が誤っていると、権限が付与されるべきユーザーに付与されなかったり、不要なユーザーに権限が渡ったりします。

これらの設定は、組織全体のセキュリティモデルに直結するため、想定と異なる動作が発生した場合にはスコープ定義を最初に確認する必要があります。

想定と違う動作が発生する主な原因

スコープ設定ルールが想定と異なる動作を引き起こす原因は、以下の3つに大別できます。

  • 共有ルールのスコープ選択の誤り: 例えば「すべてのユーザー」を対象とするつもりで「ロールおよび下位ロール」を選択してしまうと、対象外のロールのユーザーは共有されません。また、公開グループを指定する場合にグループメンバーが正しく構成されていないケースもよくあります。
  • 権限セットの割り当てスコープの誤り: 権限セットをプロファイルに割り当てたつもりが、実際にはユーザー個別に割り当てている場合や、公開グループのメンバー構成が古いまま更新されていない場合があります。
  • 処理順の誤解: レコードアクセスはロール階層、共有ルール、手動共有、Apex共有などの順序で評価されます。スコープ設定ルールだけを変更しても、他のルールとの優先順位や上書き関係によって期待通りにならないことがあります。

これらの原因を切り分けるためには、設定値の確認とともに処理順の理解が欠かせません。

設定値の確認手順

以下の手順で、スコープ設定ルールの設定値を確認します。操作はシステム管理者権限が必要です。

  1. Salesforceにログインし、画面右上の歯車アイコンから「設定」をクリックします。
  2. 左側のナビゲーションメニューで「管理」→「共有設定」→「共有ルール」を選択します。標準オブジェクトとカスタムオブジェクトのタブが表示されます。
  3. 問題が発生しているオブジェクトのタブをクリックし、ルールの一覧を表示します。各ルールの「ルール名」「ソース」「ターゲット」「アクセスレベル」を確認します。特に「ターゲット」列に表示されるスコープ(例:「ロール:営業部」や「公開グループ:営業チーム」)が意図した範囲かどうか確認します。
  4. ルール名をクリックして詳細画面を開き、「共有ルールのスコープを定義する」セクションでソースとターゲットの具体的な定義を確認します。ソースが「ロールとその下位ロール」の場合、選択したロールだけでなく下位ロールも含まれる点に注意します。
  5. 権限セットの割り当てスコープを確認する場合は、設定 > 管理 > 権限セット と進み、該当の権限セットをクリックします。「割り当て」ボタンから割り当て先の一覧を表示し、「割り当ての追加」で設定されているスコープ(ユーザー、プロファイル、ロール、公開グループ)と実際のメンバーを確認します。
  6. ロール階層がスコープに影響する場合、設定 > 管理 > ロール に進み、該当ユーザーが属するロールと上位ロールを確認します。ロール階層はデフォルトで上位ロールに下位ロールのレコードアクセス権を与えますが、共有ルールと組み合わせると複雑になります。

これらの手順で設定値を確認しても問題が見つからない場合は、処理順が原因である可能性が高まります。

処理順の確認

Salesforceのレコードアクセスは、以下の順序で評価されます。スコープ設定ルールはこの中で「共有ルール」と「権限セット」の部分に該当しますが、他の要素との関係を理解する必要があります。

順序 アクセス決定要素 スコープ設定ルールとの関係
1 組織の共有設定(既定のアクセス権) オブジェクトごとに「公開/非公開/公開・読取り専用/公開・閲覧/変更可能」などの設定。これが基本アクセスレベルを決める。
2 ロール階層 上位ロールのユーザーは下位ロールのユーザーが所有するレコードを自動的に参照可能(管理設定による)。スコープには依存しないが、共有ルールのターゲットがロールの場合はこの階層がさらに拡大する。
3 共有ルール ここでスコープ設定(ソースとターゲット)が適用される。ロール階層の上に追加で共有される。
4 手動共有 ユーザーが個別にレコードを共有する操作。スコープ設定ルールより優先されることがある。
5 Apex共有 プログラムによる共有。処理順では最後に適用される。
6 権限セット・プロファイルのオブジェクト権限 レコードアクセスのベースとなる「参照」「作成」「編集」「削除」などの権限。共有ルールと組み合わせて制御される。

例えば、組織の共有設定が「非公開」の場合、ロール階層と共有ルールで権限が付与されなければレコードは見えません。一方、共有ルールでターゲットが「ロール:営業部」に設定されていても、営業部ロールの上位ロールに属するユーザーはロール階層によってすでにアクセス権を持っていることがあります。このように、スコープ設定だけではなく、どの段階でアクセスが許可または拒否されるかを処理順に沿って確認することが重要です。

具体例:営業部の商談が見えない場合の切り分け

ある営業担当者が、自分が担当ではない商談レコードを参照できないとします。この場合、以下のように処理順を確認します。

  1. 組織の共有設定で商談が「非公開」になっていないか確認します。
  2. 営業担当者のロールが商談所有者のロールの上位かどうか確認します(ロール階層)。上位ならアクセス可能。
  3. 次に、共有ルールで商談を共有するルールが存在するか、そのスコープに営業担当者が含まれているか確認します。例えば、共有ルールのターゲットが「ロール:営業部」で、営業担当者が営業部ロールに所属していれば見えるはずです。もし見えない場合、ターゲットが「ロールとその下位ロール」で営業部ロールが正しいか、公開グループのメンバーに含まれているかなどを再確認します。
  4. 手動共有やApex共有が権限を上書きしていないか確認します。
  5. 最後に、権限セットやプロファイルで商談オブジェクトの「参照」権限が有効か確認します。

このように処理順に沿って確認することで、スコープ設定が有効に機能しているか判断できます。

よくある失敗パターンと対処法

実際の現場で見られる失敗パターンと、その対処法を紹介します。

  • パターン1:公開グループのメンバー構成が意図と異なる
    共有ルールで公開グループをターゲットにしている場合、グループメンバーの追加・削除がされていないと、想定外のユーザーに権限が付与されたり不足したりします。対処法として、公開グループのメンバー一覧を定期的に確認し、組織変更や異動に合わせて更新する運用ルールを設けてください。
  • パターン2:ロール階層を考慮せずにスコープを設定している
    例えば、ロール階層で上位ロールに自動的にアクセス権があることを忘れて、重複して共有ルールを設定してしまうケース。この場合、不要なルールが混乱の原因になります。対処法として、ロール階層の効果を理解した上で、本当に必要な共有ルールだけを設計してください。
  • パターン3:複数の共有ルールが競合する
    同じオブジェクトに対して複数の共有ルールがあり、それぞれのスコープが一部重複している場合、意図しないアクセス権が発生することがあります。対処法として、共有ルールの一覧をエクスポートして影響範囲を可視化し、重複や矛盾がないか確認してください。
  • パターン4:権限セットのスコープを誤って「すべてのユーザー」にしている
    権限セットの割り当てスコープで「すべてのユーザー」を選択すると、全ユーザーに一括で権限が付与されます。大規模組織では意図しない権限付与になりがちです。対処法として、スコープは可能な限り限定し、「公開グループ」や「ロール」を利用することを推奨します。

管理者に確認すべき情報と再発防止策

システム管理者は、スコープ設定ルールの変更履歴や監査ログを活用して原因を特定します。また、以下の情報を事前に整理しておくとスムーズです。

  • 問題が発生しているユーザーのロール、プロファイル、権限セット一覧
  • 対象レコードの所有者、作成者、共有情報(手動共有の有無など)
  • 関連する共有ルールの定義(ソース、ターゲット、アクセスレベル)
  • 組織の共有設定(公開範囲)の変更履歴

再発防止策としては、以下の運用ルールを検討してください。

  • 共有ルールや権限セットの変更は、変更管理プロセスを経てリリースする。
  • スコープ設定に影響する組織変更(ロール、公開グループの変更)が発生したら、関連ルールの影響を確認する。
  • 定期的に権限の棚卸しを実施し、不要なルールや権限を削除する。
  • テスト環境でスコープ設定の確認を実施してから本番環境に反映する。

よくある質問(FAQ)

Q1. 共有ルールのスコープで「ロールおよび下位ロール」と「ロールとその下位ロール」の違いは?
どちらも同じ意味で、選択したロール自身とその下位ロールを含む範囲です。表記ゆれがある場合もありますが、同等の動作です。

Q2. 権限セットの割り当てをプロファイルに設定しているが、そのプロファイルのユーザーに権限が反映されない。なぜ?
権限セットの割り当ては即時反映されますが、権限セット自体がまだ有効化されていない可能性があります。また、ユーザーのライセンスタイプが権限セットの対象外のライセンスであることも原因です。権限セットの設定画面で「ライセンス」を確認してください。

Q3. 共有ルールを削除したのに、ユーザーがまだレコードを見れる。なぜ?
共有ルールを削除しても、他の共有メカニズム(ロール階層、手動共有、Apex共有)が残っている可能性があります。また、共有ルールの変更は完全に反映されるまでに時間がかかる場合があるため、数分待ってから再確認してください。

まとめ

スコープ設定ルールが想定と異なる場合は、共有ルールと権限セットのスコープ定義を正確に確認し、Salesforceの処理順(組織の共有設定→ロール階層→共有ルール→手動共有→Apex共有)に沿って原因を切り分けることが重要です。設定変更後はすぐにテストユーザーで動作確認し、問題が解消しない場合は公開グループやロール階層、権限セットのライセンスなど二次的な要素も点検してください。日頃から設定の変更履歴を記録し、定期的な棚卸しを行うことで、同様のトラブルを未然に防ぐことができます。


この記事の監修者
✍️

超解決 第一編集部

疑問解決ポータル「超解決」の編集チーム。正確な検証と、現場視点での伝わりやすい解説を心がけています。