Salesforceで項目レベルセキュリティ(FLS)が原因でユーザーが特定の項目を参照・編集できない場合、本番環境に反映する前に原因を切り分けて適切な設定を行うことが極めて重要です。FLSはプロファイルや権限セットと組み合わさって動作するため、思いがけない権限不足が発生しやすく、一度誤った設定を本番に適用すると修正に多くの時間を要します。本記事では、FLS権限不足の典型的な症状、他の権限設定との違い、そしてサンドボックスで実施すべき具体的な切り分け手順を解説します。これにより、本番反映前に問題を確実に特定し、安全に権限設定を完了できるようになります。
【要点】この記事で確認すること
- 最初に見る場所: プロファイルまたは権限セットの「項目レベルのセキュリティ」設定画面。特に「参照可能」「編集可能」のチェック状態を確認します。
- 切り分けの軸: 同一オブジェクト内での項目ごとの表示可否、プロファイルと権限セットの優先順位、共有設定との重複を考慮します。
- 注意点: 本番環境で直接FLSを変更する前に、必ずサンドボックスで動作検証を行ってください。また、変更の影響が該当ユーザーだけでなく、すべてのプロファイルに及ぶ可能性があるため、変更箇所の影響範囲を事前に洗い出しましょう。
ADVERTISEMENT
目次
項目レベルセキュリティとは?権限不足の典型的な症状と基本構造
項目レベルセキュリティ(Field-Level Security, FLS)は、Salesforceのオブジェクト内の個々の項目に対して、ユーザーが参照できるか、編集できるかを制御する機能です。FLSはプロファイルと権限セットの両方で設定でき、プロファイルがベースとなる権限を定義し、権限セットがそれを上書きまたは追加する形で動作します。
権限不足が発生した場合、典型的な症状としては以下のようなものがあります。
- レコード詳細画面で特定の項目が表示されない(参照不可)
- 項目を編集しようとすると「権限がありません」とエラーが出る
- レポートやリストビューで項目が選択できない
- Apexやフローから項目を更新しようとするとエラーになる
これらの症状が発生した場合、FLSが適切に設定されていない可能性が高いですが、プロファイルのオブジェクト権限や共有設定、ページレイアウトの可視性など、他の要素も影響することがあります。そのため、本番反映前に網羅的に切り分ける必要があります。
本番反映前に行うべき切り分け手順
サンドボックス環境(Developer SandboxやPartial Sandbox)で、以下の手順に沿って原因を特定します。手順は実際に操作しながら進めてください。
- ステップ1: 症状を正確に把握する
どのユーザーが、どのオブジェクトのどの項目に対して権限不足が発生しているのかを明確にします。エラーメッセージが表示される場合はスクリーンショットを取得し、表示されない項目のAPI参照名をメモしてください。 - ステップ2: プロファイルのオブジェクト権限を確認する
対象ユーザーに割り当てられたプロファイルを開き、「オブジェクト設定」から該当オブジェクトの「参照」「作成」「編集」「削除」などの権限が有効になっているか確認します。オブジェクト権限がない場合、FLSを設定しても項目は表示されません。 - ステップ3: プロファイルのFLS設定を確認する
同じプロファイル画面で「項目レベルのセキュリティ」を開き、問題の項目が「参照可能」「編集可能」にチェックされているか確認します。チェックがない場合は、それが原因です。 - ステップ4: 権限セットのFLS設定を確認する
ユーザーに権限セットが割り当てられている場合、その権限セットの「項目レベルのセキュリティ」設定を確認します。権限セットで「参照可能」を外していると、プロファイルで許可していても権限が無効化されます(一般的に権限セットはプロファイルを上書きしますが、FLSにおいては「表示権限のマスク」が可能です)。 - ステップ5: 共有設定とページレイアウトを確認する
共有ルールや手動共有によりレコードアクセスが制限されていないか、またページレイアウトで項目が非表示になっていないかを確認します。これらの設定はFLSとは独立して動作しますが、症状が似ているため誤認しやすいです。 - ステップ6: 他の権限設定(レポートタイプ可視性など)を確認する
レポートで項目が表示されない場合は、レポートタイプの項目可視性が無効になっている可能性があります。レポートタイプの編集画面で該当項目が非表示になっていないか確認します。 - ステップ7: 実際のユーザーでログインして検証する
原因を修正したら、対象ユーザーとしてログイン(「ユーザーのログインとして」機能を利用)し、問題のレコードを開いて項目が表示・編集できることを確認します。複数のユーザーでテストする場合は、サンドボックスにテストユーザーを作成して検証します。
これらの手順を踏むことで、FLSが原因かどうか、他の設定と競合していないかを確実に切り分けることができます。
他の権限設定との比較表:FLS・プロファイル・権限セット・共有設定
権限不足の原因を特定するためには、各設定の役割と優先順位を理解しておく必要があります。以下の表に主要な権限設定をまとめました。
| 設定項目 | 設定場所 | 影響範囲 | 優先順位 | 注意点 |
|---|---|---|---|---|
| オブジェクト権限(プロファイル) | プロファイルの「オブジェクト設定」 | オブジェクト全体のCRUD操作 | 最優先:この権限がないとFLSを設定しても操作不可 | 誤って外すとすべての項目にアクセスできなくなる |
| 項目レベルセキュリティ(プロファイル) | プロファイルの「項目レベルのセキュリティ」 | 個別項目の参照・編集 | 権限セットより低い(権限セットで上書き可能) | デフォルトではすべての項目が非表示 |
| 項目レベルセキュリティ(権限セット) | 権限セットの「項目レベルのセキュリティ」 | 個別項目の参照・編集(プロファイルの設定を上書き) | プロファイルより高い(ただし表示権限をマスクすることも可能) | 権限セットで「参照可能」のチェックを外すと、プロファイルで許可していても非表示になる |
| 共有設定 | 共有ルール、手動共有、組織の共有設定 | レコード単位のアクセス制御 | FLSとは直交:共有設定でアクセス権があってもFLSで項目が隠れる | レコード自体が見えない場合は共有設定を疑う |
失敗パターン:よくある設定ミスとその原因
実際の運用で発生しやすい失敗パターンをいくつか紹介します。これらのパターンを知っておくことで、原因特定がスムーズになります。
パターン1: プロファイルのFLSは設定したのに権限セットが競合している
プロファイルで項目の参照・編集を許可しているにもかかわらず、割り当てられている権限セットのFLSで同じ項目が非表示になっているケースです。この場合、権限セットの設定が優先されるため、ユーザーは項目を見ることができません。切り分けの際は、必ず権限セットも確認しましょう。
パターン2: オブジェクト権限を付与し忘れている
FLSを設定したのにまだ項目が見えない場合、プロファイルのオブジェクト権限が「参照」のみで「編集」がない可能性があります。また、オブジェクト権限自体が「なし」になっていると、FLSを設定しても一切表示されません。
パターン3: 親子関係の項目でFLSを設定していない
取引先責任者など、参照項目を使用する場合、親オブジェクトの項目もFLSで許可しておく必要があります。例えば、取引先にカスタム項目を追加した場合、その項目を参照する取引先責任者の表示項目として設定するには、取引先責任者のFLSでも同じ項目を有効にする必要があります。
パターン4: レポートタイプの可視性を忘れる
カスタムレポートタイプを作成した際、含める項目の可視性を設定します。この可視性が無効になっていると、FLSで許可していてもレポートで項目が表示されません。
管理者へ確認すべき情報と効果的な連絡方法
問題を管理者(システム管理者)に報告する際は、以下の情報を整理して伝えると解決が早まります。
- 症状の詳細: どのオブジェクトのどの項目が、どの操作(参照・編集)で問題が発生するのか。エラーメッセージがあればその全文。
- 影響を受けるユーザー: ユーザー名、プロファイル名、および割り当てられている権限セットの一覧。
- 該当項目のAPI参照名: 設定画面で確認できる項目のAPI名。カスタム項目の場合は__cを含む完全な名前。
- 確認済みの設定: プロファイルのオブジェクト権限、プロファイルのFLS、権限セットのFLS、共有設定、ページレイアウトなどを確認した結果と、そのスクリーンショット。
これらをまとめてチケットシステムやチャットで報告すれば、管理者はすぐに原因箇所を特定でき、本番環境への誤った変更を防げます。
よくある質問(Q&A)
Q1: FLSを変更したのに反映されません。なぜですか?
変更が反映されない主な理由は、キャッシュが残っていること、または権限セットがプロファイルの設定を上書きしていることです。まずはブラウザのキャッシュをクリアし、ユーザーでログインし直してみてください。それでも改善しない場合は、権限セットのFLS設定が競合していないか確認します。また、プロファイル自体の優先順位(割り当てられているプロファイルが正しいか)も確認しましょう。
Q2: FLSとプロファイルのオブジェクト権限、どちらを先に設定すべきですか?
まずオブジェクト権限を正しく設定し、その後にFLSを設定するのが順序です。オブジェクト権限がないとFLSを設定しても意味がありません。通常、開発プロセスでは、オブジェクト権限をテンプレートとしてプロファイルに設定し、その上でFLSで微調整する流れが推奨されます。
Q3: 権限セットでFLSを設定するときに、プロファイルの設定を引き継ぐことはできますか?
権限セットを作成する際、ベースとなるプロファイルのFLS設定は自動的には引き継がれません。権限セットのFLS画面では、すべての項目が初期状態で「未選択」となっています。したがって、権限セットでFLSを設定する場合は、明示的に必要な項目にチェックを入れる必要があります。逆に、プロファイルで許可している項目を権限セットで制限する場合も、個別にチェックを外します。
Q4: 大量のカスタム項目がある場合、効率的にFLSを設定する方法はありますか?
Salesforceの「権限セットグループ」や「許可セットの一括割り当て」機能を活用すると効率的です。また、プロファイルのFLS設定をエクスポート・インポートできるツール(Data Loaderなど)を使用する方法もありますが、標準機能としては提供されていません。運用が複雑になる場合は、プロファイルのテンプレートを最小限にし、権限セットで必要な権限を付与する設計をおすすめします。
まとめ
項目レベルセキュリティによる権限不足は、適切な切り分け手順を踏めば本番反映前に確実に解決できます。本記事で紹介した手順をサンドボックスで実施し、プロファイル・権限セット・共有設定などの各要素を漏れなく確認してください。また、管理者への報告は具体的な情報を整理して行うことで、迅速な対応が可能になります。FLS設定の変更は影響範囲が広いため、必ずテスト環境で検証してから本番に適用するよう心がけましょう。
超解決 第一編集部
疑問解決ポータル「超解決」の編集チーム。正確な検証と、現場視点での伝わりやすい解説を心がけています。
Office・仕事術の人気記事ランキング
- 【神技】保存せずに閉じたExcel・Wordファイルを復元する!消えたデータを復活させる4つの救出法
- 【Outlook】添付ファイルが「Winmail.dat」に化ける!受信側が困らない送信設定
- 【Word】差し込み印刷で数字の桁を整える!金額にカンマ(桁区切り)を入れる設定
- 【Teams】メッセージを「保存済み」にして後で読む!重要なチャットをブックマークして整理する技
- 【Word】校閲機能の基本!赤字(変更履歴)とコメントで修正を見える化する
- 【PDF】PDFに入力した文字の「フォント・サイズ・色」を変更するプロパティ設定
- 【Copilot】「サービスに接続できません」エラーの原因切り分けと対処法
- 【Excel】文字が入っているセルの「個数」を数える!COUNTA関数の簡単な使い方
- 【PDF】結合するPDFの「用紙サイズ」がバラバラな時、すべてを「A4サイズ」に強制リサイズしてから結合する
- 【Excel】矢印キーで「セルが動かず画面がスクロールする」!ScrollLockの解除方法(ノートPC対応)
