Salesforceでカスタマイズを本番環境に反映する際、変更セット(Change Set)を利用する企業は多いでしょう。ところが、アップロードや検証は成功しても、本番環境で特定のユーザが権限不足で機能を使えないというトラブルがしばしば発生します。この記事では、変更セットを本番反映する前に、権限不足の原因を切り分ける手順を体系的に解説します。原因を特定し、管理者と連携して事前に対処できるようになることを目的としています。
【要点】この記事で確認すること
- 最初に見る場所: 変更セットに含めたコンポーネントの種類と、関連するプロファイル・権限セットの割り当て状況を確認します。
- 切り分けの軸: オブジェクト権限/フィールド権限/Apexクラス権限など権限の種類ごとに、不足しているものを特定します。
- 注意点: 本番環境への直接的な権限変更は避け、必ずSandboxでテストした権限セットを変更セット経由で反映するようにしてください。
ADVERTISEMENT
目次
変更セットと権限の基本
変更セットは、カスタマイズ要素をSandboxから本番環境へ移行するための機能です。しかし、変更セットは「メタデータ」の移行ツールであり、ユーザ権限やデータは原則として移行しません。権限に関する設定のうち、プロファイルや権限セットもメタデータとして移行可能ですが、変更セットに含めなければ反映されません。よくあるのは、新しいオブジェクトや項目を作成したにもかかわらず、その権限を変更セットに含め忘れ、本番環境でユーザに権限が付与されないケースです。
権限不足のトラブルを防ぐには、変更セットの構成を理解し、移行対象のコンポーネントと権限の関係を事前に把握することが重要です。本番反映の前にSandboxで動作確認と権限チェックを行い、不足がないか確認する習慣をつけましょう。
権限不足が発生する主な原因
プロファイル権限の不足
プロファイルはユーザの基本権限を定義します。変更セットで新しいオブジェクトやタブを作成した場合、そのオブジェクトに対する「参照」「作成」「編集」「削除」などの権限を、該当するプロファイルに付与する必要があります。しかし、変更セットでオブジェクトだけを移行し、プロファイルの権限設定を変更セットに含めないと、本番環境ではユーザがオブジェクトにアクセスできません。
権限セットの未割り当て
権限セットはプロファイルを補完する追加権限です。変更セットで権限セットを作成・更新しても、本番環境でユーザに割り当てなければ意味がありません。権限セットの割り当てはデータ移行に含まれないため、別途手動またはAPIで割り当てる必要があります。
フィールドレベルのセキュリティ
項目(フィールド)に対する参照・編集権限は、プロファイルまたは権限セットの「フィールドレベルのセキュリティ」で制御されます。新規項目を追加した場合、その項目に対する権限を適切なプロファイルや権限セットに設定しないと、ユーザはその項目を参照できません。
Apexクラス/Visualforceページの権限
ApexクラスやVisualforceページを利用する機能は、該当するクラス・ページへのアクセス権限がプロファイルまたは権限セットで有効になっている必要があります。これを忘れると、ボタンやリンクから機能を呼び出そうとしたときに権限エラーが発生します。
| 権限の種類 | 変更セットで移行可能か | 本番で不足しやすい理由 |
|---|---|---|
| プロファイルのオブジェクト権限 | 可能(プロファイルを変更セットに含める) | プロファイル自体を変更セットに含め忘れる |
| 権限セットの割り当て | 不可(割り当てはデータ) | 移行後に手動割り当てが必要で、忘れがち |
| フィールドレベルのセキュリティ | 可能 | 項目を追加したが、該当プロファイルのFLS設定を変更していない |
| Apexクラス権限 | 可能 | クラスを有効にするプロファイル設定を含めていない |
本番反映前に確認すべきチェックリスト
以下の手順をSandbox上で実施し、問題がないことを確認してから変更セットを本番環境にアップロードしてください。
- 変更セットの内容を完全に洗い出す: 変更セットに含まれているコンポーネントをリストアップします。特に、新規作成したカスタムオブジェクト、項目、Apexクラス、Visualforceページ、権限セット、プロファイルの変更がある場合、それらがすべて含まれているか確認します。
- プロファイルの権限を検証する: 変更セットにプロファイルが含まれている場合、そのプロファイルで新しいオブジェクトや項目に対して適切な権限(CRUD、参照、編集など)が設定されているか確認します。Sandbox上で対象ユーザでログインし、実際に操作できるか試します。
- 権限セットの割り当て計画を立てる: 権限セットを新規作成した場合は、本番環境でどのユーザに割り当てるか事前に決めておきます。変更セットで権限セットを移行した後、必ずユーザへの割り当て作業を忘れずに行います。
- フィールドレベルのセキュリティを全件確認: 新規項目ができた場合、その項目に対するFLS設定を全プロファイルおよび権限セットに対して確認します。特に「参照のみ」や「参照編集可能」の区別を間違えないようにします。
- ApexクラスとVisualforceページのアクセス権限を確認: 新規Apexクラスを作成した場合、そのクラスを利用するプロファイルまたは権限セットで「有効」になっているか確認します。Visualforceページも同様です。
- Sandboxと本番の差分をツールで比較する: Salesforce CLIやWorkbenchなどのツールを使って、Sandboxと本番環境のメタデータ差分を取得し、権限設定に相違がないかを確認します。特にプロファイルや権限セットの差分は見落としがちです。
失敗パターンとその回避方法
パターン1:オブジェクト権限だけ移行してプロファイル権限を忘れる
よくある失敗は、カスタムオブジェクトを作成し、そのオブジェクトを変更セットに含めたが、関連するタブやプロファイルの権限設定を含めなかったケースです。本番環境ではオブジェクトは存在するものの、どのプロファイルにも権限がなく、誰もアクセスできません。回避するには、オブジェクトと同時に、それを使用するプロファイルまたは権限セットを変更セットに追加し、権限を設定します。
パターン2:権限セットを移行したが割り当てを忘れる
権限セットのメタデータは変更セットで移行できますが、ユーザへの割り当ては別作業です。本番環境で権限セットは存在するのに、割り当てられていないため権限不足になるケースが多発します。回避策として、変更セットのアップロード直後に、権限セットの割り当てを実施するタスクをスケジュールに組み込みます。また、割り当てを自動化するスクリプトを準備しておくと確実です。
パターン3:Apexクラスの権限を有効にしていない
新しいApexクラスを作成し、変更セットに含めたが、そのクラスのアクセス権限をプロファイルで有効にしていないと、クラスを呼び出す機能(Lightningコンポーネント、トリガ、バッチなど)がエラーになります。回避するには、Apexクラスを追加したら、必ずそれが使用されるプロファイルまたは権限セットで「有効」チェックを入れます。
管理者への確認事項と連携ポイント
変更セットの権限不足が発生した場合、システム管理者と連携して以下の情報を共有すると解決がスムーズです。
- 影響を受けるユーザのプロファイル名と権限セット割り当て状況: どのユーザがどの権限セットを持っているか、プロファイルは何かを伝えます。
- 不足している権限の具体的な操作内容: 例えば「新規案件作成ボタンがグレーアウトする」「特定の項目が見えない」など、事象を具体的に伝えることで原因の切り分けが速まります。
- 変更セットのアップロード日時と該当する変更セット名: 何日前のどの変更セットで問題が起きたかを特定します。
- Sandboxと本番で権限設定が異なる可能性: Sandboxで正しく動作していた場合、Sandboxの権限設定と本番の権限設定を比較するよう依頼します。
管理者は、Salesforceの「権限セットの割り当て」ページや「プロファイルの比較」機能を使って差異を確認することができます。また、変更セットに含まれていない権限設定が本番環境で手動変更されている場合もありますので、その履歴を確認することも有効です。
よくある質問(FAQ)
変更セットでプロファイルを移行すると、既存のプロファイル設定は上書きされますか?
はい、変更セットでプロファイルをアップロードすると、本番環境の同名プロファイルが完全に置き換わります。そのため、Sandboxでプロファイルの権限設定を変更した場合、本番環境で意図しない権限変更が発生するリスクがあります。プロファイルの変更セットを利用する際は、Sandboxで十分にテストし、影響範囲を事前に把握しておいてください。
権限不足が発生した場合、本番環境で直接権限を修正しても良いですか?
緊急時はやむを得ませんが、なるべく避けるべきです。本番環境での直接修正は、その後の変更セット適用時に競合を起こしたり、設定の一貫性を損なう原因になります。まずはSandboxで修正した権限を変更セットで本番に再デプロイすることを検討してください。
権限セットの割り当てを本番環境で自動化する方法はありますか?
Salesforceの「権限セットの割り当て」はAPIを通じて実行可能です。Apexやワークフロールールでは自動割り当てできませんが、フロー(Process Builder)を使用して特定の条件で権限セットを割り当てることができます。また、外部のジョブ管理ツールからSalesforce APIを呼び出して一括割り当てする方法もあります。
まとめ
変更セットでの権限不足は、事前のチェックと計画でほとんど防げます。本番反映前にSandboxで権限設定を網羅的に確認し、プロファイルや権限セットの設定漏れをなくすことが重要です。特に、権限セットの割り当ては変更セットでは移行できないため、アップロード後の作業として必ず実施してください。もしトラブルが起きた場合にも、原因を権限の種類ごとに切り分け、管理者と連携することで迅速に解決できます。
超解決 第一編集部
疑問解決ポータル「超解決」の編集チーム。正確な検証と、現場視点での伝わりやすい解説を心がけています。
Office・仕事術の人気記事ランキング
- 【神技】保存せずに閉じたExcel・Wordファイルを復元する!消えたデータを復活させる4つの救出法
- 【Outlook】添付ファイルが「Winmail.dat」に化ける!受信側が困らない送信設定
- 【Word】差し込み印刷で数字の桁を整える!金額にカンマ(桁区切り)を入れる設定
- 【Teams】メッセージを「保存済み」にして後で読む!重要なチャットをブックマークして整理する技
- 【Word】校閲機能の基本!赤字(変更履歴)とコメントで修正を見える化する
- 【PDF】PDFに入力した文字の「フォント・サイズ・色」を変更するプロパティ設定
- 【Excel】文字が入っているセルの「個数」を数える!COUNTA関数の簡単な使い方
- 【Copilot】「サービスに接続できません」エラーの原因切り分けと対処法
- 【PDF】結合するPDFの「用紙サイズ」がバラバラな時、すべてを「A4サイズ」に強制リサイズしてから結合する
- 【Excel】矢印キーで「セルが動かず画面がスクロールする」!ScrollLockの解除方法(ノートPC対応)
