Salesforceで特定のレコードへのアクセスを制限する「制限ルール(Restriction Rules)」は、権限セットや共有設定と組み合わさると、意図した通りに動作しないことがあります。例えば、ユーザーに権限セットでオブジェクトへの読み取り権限を与えたのに、特定のレコードだけ表示されない、あるいは逆に表示されるべきでないレコードが見えてしまうといったケースです。この記事では、制限ルールと権限セット、共有設定の関係を整理し、想定と違う動作が起きたときに原因を切り分ける方法を具体的に解説します。実際の業務で遭遇しやすいパターンや管理者への伝え方も含めて説明しますので、Salesforceのアクセス制御でお困りの方はぜひ参考にしてください。
【要点】この記事で確認すること
- 最初に見る場所: 制限ルールが適用されているオブジェクトと条件式、権限セットの設定画面、共有ルールの一覧
- 切り分けの軸: ユーザーのライセンス種類、権限セットの有効化状態、共有設定の継承順位(OWD→共有ルール→手動共有)
- 注意点: 会社のSalesforce環境は管理者権限を持たないユーザーが設定を変更できないため、原因調査はシステム管理者または管理者に依頼する必要があります。自分で権限を変更しようとせず、正確な情報を伝えてください。
ADVERTISEMENT
目次
制限ルールの仕組みと権限セット・共有設定の関係
制限ルールとは
制限ルールは、特定の条件に合致するレコードへのアクセスを制限する機能です。例えば「案件ステータスが’クローズ’のレコードは参照不可」といったルールを設定できます。制限ルールは権限セットやプロファイルとは独立して動作しますが、実際のアクセス可否はこれらとの組み合わせで決まります。制限ルールはあくまで「追加のフィルタ」であり、権限セットで付与されたオブジェクト権限(読み取り、作成、編集など)を上書きするわけではない点が重要です。つまり、権限セットで参照権限があっても制限ルールで除外されればアクセス不可になります。
権限セットと共有設定の役割
権限セットは、ユーザーに追加のオブジェクト権限や項目権限を付与するためのツールです。一方、共有設定はレコード単位のアクセス権を管理します。デフォルトでは、組織の共有設定(Organization-Wide Defaults、OWD)により、オブジェクトごとの基本アクセスレベルが決まりますが、共有ルールや手動共有、公開グループなどを通じて細かく制御します。制限ルールはこれらの共有設定とは別のレイヤーで動作し、レコードの可視性をさらに制限します。
想定と違う動作が起きる原因を切り分ける
制限ルールが想定と異なる場合、まずは以下の表で原因を大まかに分類します。該当する症状を確認してください。
| 症状 | 考えられる原因 | 確認ポイント |
|---|---|---|
| ユーザーにレコードが見えない(権限セットで参照権限あり) | 制限ルールが適用されている、または共有設定で非表示にされている | 制限ルールの条件、ユーザーの公開グループメンバーシップ、手動共有の有無 |
| ユーザーにレコードが見える(制限ルールで制限すべき場合) | 制限ルールの条件が正しく設定されていない、またはユーザーが管理者権限を持つ | 制限ルールの有効化状態、条件式の検証、ユーザーのプロファイル |
| 一部のユーザーのみ制限が効かない | 権限セットやプロファイルで「制限ルールを無視する」権限がある | 「制限ルールを無視」権限の有無(システム管理者や特定の権限セット) |
上記の表で似た症状が見つかったら、次に具体的な確認手順を進めます。以下の順番で調査してください。
- 制限ルールの設定を確認する: 対象オブジェクトの「制限ルール」一覧を開き、ルールが有効になっているか、条件式が正しいかを確認します。特に、日付やステータスなどの条件が現在のデータと整合しているかをチェックします。条件式に誤りがあると、意図しないレコードが制限されたり制限されなかったりします。
- 権限セットを確認する: 問題のユーザーに割り当てられている権限セットを開き、オブジェクト権限(読み取り、作成、編集、削除)が付与されているかを確認します。制限ルールは権限セットの権限を上書きしないため、権限セットでアクセス権がないと制限ルールの有無に関わらずレコードは見えません。
- 共有設定を確認する: 組織の共有設定(OWD)が「公開/非公開」のどちらかを確認します。非公開の場合は、共有ルールや手動共有でアクセス権が付与されている必要があります。共有ルール一覧で該当ユーザーが含まれる公開グループやロール階層を確認します。
- ユーザーのプロファイルと権限セットで「制限ルールを無視」権限を確認する: システム管理者や一部の権限セットには「制限ルールを無視」権限が含まれている場合があります。この権限があると制限ルールが適用されません。ユーザーの権限一覧でこの権限の有無を調べてください。
- レコードの共有状況を確認する: 特定のレコードについて、レコード詳細画面の「共有」ボタンから誰と共有されているかを確認します。手動共有や自動共有の設定が意図せず付与されていないかをチェックします。
権限セットと共有設定の確認手順
権限セットの確認
権限セットの確認は、Salesforce設定画面から「権限セット」を開き、該当する権限セットを選択します。その後、「オブジェクト設定」タブで対象オブジェクトの編集権限や参照権限がチェックされているか確認します。また、権限セットに「制限ルールを無視」権限が含まれていないかも確認してください。システム管理者プロファイルにはこの権限がデフォルトで含まれていますが、通常のユーザーに付与する権限セットには意図的に追加しない限り含まれません。もし「制限ルールを無視」権限が付与されていると、権限セットを持つユーザーはすべての制限ルールをバイパスします。そのため、制限ルールが機能していない場合はこの権限が疑われます。
共有設定の確認
共有設定は、「設定」→「共有設定」から確認します。まず、対象オブジェクトのデフォルトアクセスレベル(OWD)を確認します。例えば「非公開」の場合、ユーザーは自分が所有者のレコードまたは共有されているレコードのみアクセス可能です。次に、「共有ルール」一覧で、対象ユーザーが属するロールや公開グループに対して読み取りや編集の共有ルールが設定されているか確認します。共有ルールは、条件に基づいて自動的にレコードを共有するルールです。さらに「手動共有」は、レコード所有者が直接共有設定を行った場合です。複数の共有設定が重なると、最もアクセス権の強い設定が適用されるため、意図せず広いアクセス権が付与されている可能性があります。
失敗パターンと管理者への依頼ポイント
実際の業務でよくある失敗パターンをいくつか挙げます。
- パターン1:権限セットで参照権限を付与したのにレコードが見えない。 原因として、制限ルールがそのレコードをフィルタしているか、共有設定(OWDが非公開で共有ルールがない)が考えられます。権限セットはオブジェクト全体への権限であり、レコード単位の制限には共有設定と制限ルールが関係します。
- パターン2:制限ルールで特定ステータスのレコードを非表示にしたが、管理者以外のユーザーにも見えてしまう。 この場合、ユーザーに「制限ルールを無視」権限が付与されていないか確認します。また、共有ルールが制限ルールより優先されるわけではないですが、別の共有経路(例:レコード所有者としてのアクセス)で見えている可能性もあります。
- パターン3:制限ルールを新規に作成したが、既存のユーザーに影響が出ない。 制限ルールは作成後に有効化が必要です。また、制限ルールはリアルタイムに適用されますが、ユーザーのセッションキャッシュが影響する場合もあります。一度ログアウトして再ログインすると反映されます。
管理者に調査を依頼する際は、以下の情報を伝えるとスムーズです。
- 問題が発生しているユーザーのユーザー名、ロール、プロファイル
- 対象のオブジェクト名と具体的なレコードID(またはレコード名)
- 想定される動作と実際の動作の違い
- そのレコードが表示されるべき条件(権限セットや制限ルールの条件)
- 既に確認した権限セットや共有ルールの情報
よくある質問(FAQ)
Q1. 制限ルールと共有ルールはどちらが優先されますか?
制限ルールは共有設定よりも優先されます。つまり、共有ルールでアクセス権が付与されていても、制限ルールで除外されるとそのレコードにはアクセスできません。ただし、制限ルールを無視する権限を持つユーザーはこの限りではありません。
Q2. 権限セットでオブジェクト権限を削除すると制限ルールも解除されますか?
権限セットでオブジェクト権限を削除すると、そのオブジェクト自体にアクセスできなくなるため、制限ルールが適用される以前の問題になります。制限ルールは権限セットで権限があることを前提とした追加のフィルタであるため、権限セットで権限がない場合は制限ルールの有無にかかわらずレコードは見えません。
Q3. 制限ルールの条件にロールや公開グループを使用できますか?
制限ルールの条件式では、ユーザーの属性(ロール、プロファイル、権限セットなど)を参照できます。例えば、特定のロールに属するユーザーのみレコードを表示しない、といった条件が設定可能です。ただし、公開グループを直接条件に使うことはできません。代わりに、ユーザーのカスタム項目を利用してグループ化する方法があります。
Q4. 制限ルールが正しく動作しているかテストする方法は?
テストユーザーを作成し、権限セットと共有設定を実際のユーザーと同様に割り当てた上で、該当レコードへのアクセスを確認するのが確実です。また、Salesforceの「レコードアクセス」デバッグツールを使用すると、特定のユーザーにレコードが見える理由を詳細にトレースできます。このツールは設定画面からアクセスできます。
まとめ
制限ルールが想定と異なる動作をする場合、権限セットと共有設定の両面から原因を切り分けることが重要です。まずは該当ユーザーに権限セットで正しいオブジェクト権限が付与されているか、制限ルールが有効で条件が適切かを確認します。次に、共有設定(OWD、共有ルール、手動共有)を調査し、意図せぬアクセス権が付与されていないかをチェックします。特に「制限ルールを無視」権限は強力なため、安易に付与しないように注意してください。管理者に依頼する際は、具体的なユーザー情報やレコード情報を伝えることで解決が早まります。本記事の手順を参考に、Salesforceのアクセス制御を正確に管理してください。
ADVERTISEMENT
超解決 第一編集部
疑問解決ポータル「超解決」の編集チーム。正確な検証と、現場視点での伝わりやすい解説を心がけています。
Office・仕事術の人気記事ランキング
- 【Outlook】添付ファイルが「Winmail.dat」に化ける!受信側が困らない送信設定
- 【神技】保存せずに閉じたExcel・Wordファイルを復元する!消えたデータを復活させる4つの救出法
- 【Teams】メッセージを「保存済み」にして後で読む!重要なチャットをブックマークして整理する技
- 【Word】差し込み印刷で数字の桁を整える!金額にカンマ(桁区切り)を入れる設定
- 【Word】校閲機能の基本!赤字(変更履歴)とコメントで修正を見える化する
- 【PDF】PDFに入力した文字の「フォント・サイズ・色」を変更するプロパティ設定
- 【PDF】結合するPDFの「用紙サイズ」がバラバラな時、すべてを「A4サイズ」に強制リサイズしてから結合する
- 【Excel】矢印キーで「セルが動かず画面がスクロールする」!ScrollLockの解除方法(ノートPC対応)
- 【Teams】会議の「参加者リスト」を出席後にダウンロードする!誰が参加したか確認する手順
- 【Teams】画面共有時に「音声」も共有する方法!音が流れない時の設定手順
