見えるはずのレコードがユーザーに見えない — その解決法
Salesforceで見えるはずのレコードがユーザーに見えない理由を、オブジェクト権限・項目レベルセキュリティ・共有・制限ルールにわたるチェックリストで解説します。
「なぜこのユーザーはそのレコードを見られるのか」の裏返し、つまり見られるはずなのに見られない、というケースも同じくらいよくあります。朗報は、Salesforceのアクセスは決まった順序のチェックを通過するということです。だから当てずっぽうではなく、体系的に原因を切り分けられます。
すべてのレコードアクセスが通過すべき2つのチェック
Salesforceは、次の両方が成功した場合にのみアクセスを許可します。
- オブジェクトレベル — ユーザーはそのオブジェクトに対するCRUDと、該当項目の項目レベルセキュリティを持っているか?(プロファイルと権限セットから。)
- レコードレベル — 共有モデルがこの特定のレコードを付与しているか?
どちらか一方でも失敗すればレコードは見えません。そこで最初の仕事は、どちらのチェックが失敗しているかを特定することです。症状がそれを教えてくれます。
まず症状を読み取る
| 症状 | 失敗しているチェック | 進む先 |
|---|---|---|
| オブジェクト/タブがそもそも見つからない | オブジェクト権限またはアプリケーション/タブの表示 | ステップ1 |
| オブジェクトは見えるが、1件のレコードだけ見えない | レコードレベルの共有(または制限ルール) | ステップ3 |
| レコードは開けるが、項目が空白 | 項目レベルセキュリティ | ステップ2 |
| 昨日は見えたが、今日は見えない | 最近の変更/再計算 | ステップ4 |
ステップ1 — オブジェクト権限と表示
ユーザーがオブジェクトやそのタブに到達できない場合:
- プロファイルまたは権限セットで、そのオブジェクトに対するRead権限を確認します。
- アプリケーションとタブがそのユーザーに表示されているか確認します。
オブジェクトへのアクセスがなければ、共有がどうであれレコードは見えません。まずここを修正しましょう。(レコードの閲覧ではなく保存で失敗している場合、原因は通常ユーザーが到達できない関連レコードです — insufficient access rights on cross-reference idを参照してください。)
ステップ2 — 項目レベルセキュリティ
レコードは開けるのに特定の項目が空である場合、レコードレベルのアクセスは問題ありません。項目レベルセキュリティがその項目を隠しています。ユーザーのプロファイルまたは権限セットで、それらの項目のFLSを付与してください。(これは共有ではなくプロファイル/権限セットの設定です — プロファイルと権限セットと共有の比較を参照してください。)
ステップ3 — レコードレベルの共有
ユーザーがオブジェクトへのアクセス権を持っているのに1件のレコードに到達できない場合は、共有モデルを順にたどります。
- 組織の共有設定 — それが非公開の場合、ユーザーが見られるのは自分が所有するレコード、ロール階層で自分より下位の人が所有するレコード、またはルール/チーム/手動共有で付与されたレコードだけです。どれも該当しなければ、それが答えです — 共有ルール、チームのメンバー追加、または手動共有を加えましょう。
- ロール階層 — ユーザーは実際に所有者より上位に位置していますか?そうでなければロールアップは起きません。
- 制限ルールがそのユーザーを除外している — 制限ルールは共有の上に重ねてアクセスを絞り込みます。ユーザーは共有経由でアクセス権を持っていても、制限ルールの条件によって除外されている場合があります。そのユーザーの権限セットについて、オブジェクト上の制限ルールを確認してください。
ステップ4 — 最近の変更と再計算
アクセスが消えた場合:
- 所有者、ロール階層、共有ルール、制限ルール、またはユーザーの権限セットの割り当てへの変更を探します — いずれもアクセスを失わせる可能性があります。
- 共有の再計算が完了しているか確認します。所有者/ロール/ルールの変更後、Salesforceは共有を非同期で再処理し、その間はアクセスの反映が遅れることがあります。
診断チェックリスト
- オブジェクト/タブに到達できるか? → オブジェクト権限 + アプリケーション/タブの表示。
- 項目は表示されるか? → 項目レベルセキュリティ。
- **OWDが[非公開]**で、該当する共有がないか? → 共有を追加する。
- 階層上で所有者より上位にいるか? → 必要なら対応する。
- 制限ルールが除外しているか? → 条件を調整する。
- 最近の変更または再計算が進行中か? → 待つ/元に戻す。
最初に失敗したチェックが、あなたの修正点です。そして逆の問題 — アクセスが多すぎる — については見えてはいけないレコードがユーザーに見えてしまうを参照してください。
失敗しているレイヤーへ一足飛びに
時間がかかるのは、各レイヤーを順番にテストすることで、しばしばそのユーザーとしてログインして確認します。AgentForceAccessはそれを一気に短縮します。なぜユーザーがレコードを見られないのかを尋ねれば、どのチェックがそのユーザーをブロックしているか — オブジェクト権限、項目レベルセキュリティ、不足している共有、または制限ルール — を報告します。だから最初から正しいレイヤーを修正できます。
よくある質問
ユーザーはオブジェクトは見えるのに、特定の1件のレコードだけ見えません。なぜですか?
これはレコードレベルの問題です。組織の共有設定が[非公開]の場合、ユーザーが見られるのは自分が所有するレコード、ロール階層で自分より下位の人が所有するレコード、または共有ルール・チーム・手動共有で付与されたレコードだけです。どれも該当しなければ、そのレコードは見えないままです。制限ルールが除外している可能性もあります。
ユーザーはレコードを開けるのに、主要な項目が空白です。なぜですか?
これはレコード共有ではなく、項目レベルセキュリティの問題です。ユーザーはレコードへのアクセス権を持っていますが、プロファイルまたは権限セットがそれらの項目を非表示にしています。該当する権限セットで、その項目の項目レベルセキュリティを付与してください。
ユーザーがオブジェクトやタブをまったく見られません。何が問題ですか?
オブジェクトのRead権限がないか、そのプロファイルに対してアプリケーション/タブが非表示になっている可能性が高いです。オブジェクト権限とタブ/アプリケーションの表示はプロファイルと権限セットで決まります。共有モデルを調べる前に、まずそちらを修正してください。
昨日まで使えていたアクセスが止まりました。何が変わったのですか?
所有者、ロール階層、共有ルール、制限ルール、またはユーザーの権限セットへの最近の変更を探してください。いずれもアクセスを失わせる可能性があります。また、共有の再計算が完了しているか確認しましょう。再処理の間はアクセスが遅れて反映されることがあります。
あなたの組織で試してみる
AgentForceAccessは、あらゆるユーザーがあらゆるレコードやファイルを見られる理由を、Salesforceのすべての共有の仕組みを横断して、わかりやすい言葉で説明します。
先行アクセスを申し込む