💭
【Salesforce】 特定の「項目」へのアクセス制限
🧱【前提】3段階のアクセス制御
① オブジェクトレベルのアクセス制御(=表全体)
- 何の種類のデータを使えるか? を決めます。
- たとえば、「応募者(Candidate)」というオブジェクト(≒表)そのものをユーザーが見たり、編集したりできるかを設定。
- ✅ 使用するもの:プロファイル または 権限セット
- 🧠 例:「営業チームには顧客情報(Account)は見せるが、採用情報(Candidate)は見せない」
② 項目レベルのアクセス制御(=列単位)
- そのオブジェクトの中の、どの項目(フィールド)を使えるか?
- たとえば、応募者の「名前」は見せるけど、「社会保障番号(SSN)」は非表示にしたいときなど。
- ✅ 使用するもの:プロファイル または 権限セット
- 🧠 例:「面接官は応募者の連絡先を見られるが、給与情報は見られない」
③ レコードレベルのアクセス制御(=行単位)
- 同じオブジェクト内でも、どのデータの行を見せるか?
- たとえば、「自分が担当している応募者だけを見られるようにしたい」場合など。
- ✅ 使用するもの:組織の共有ルール、ロール階層、手動共有など
- 🧠 例:「採用担当マネージャーは全員分の応募者が見えるが、面接官は自分に割り当てられた人だけ見える」
🔎【項目レベルセキュリティ(Field-Level Security)とは?】
-
オブジェクトの中にある 特定の「項目(フィールド)」に対して、ユーザーが「見てもいい」「編集してもいい」を制御できます。
-
例:
- 「応募者」オブジェクトの中で「電話番号」や「社会保障番号」は見せたくない
- 「給与」フィールドだけ編集できないようにしたい
✅ ページレイアウトとの違い
- ページレイアウトは「画面上に見せるかどうか」だけ。
- 項目権限は「レポートや検索などすべての場面で見せるかどうか」を制御します。
🛠【どう設定するの?】
項目のアクセス制御は以下のように設定できます。
権限セットやプロファイルで設定
- 権限セット:柔軟に個人に追加で権限を与えたいときに使う
- プロファイル:ベースとなる権限。全体的な方針
設定手順(簡略化)
- 権限セットを作成
- 「応募者」などのオブジェクトを選択
- その中の項目ごとに「参照」「編集」などのアクセス可否をチェック
- 権限セットをユーザーに割り当てるか、グループにまとめて使う
🤖【実際の例】
-
面接官が「応募者」レコードを更新できるようにする
- Apex / C# のスキルチェックは「見て・編集OK」
- 社会保障番号や電話番号は「見せない」
- 採用日などは「見せるだけ(編集NG)」
⚠️【補足ポイント】
- 項目を新しく作ったときに、複数の権限セットに一括で権限を設定する機能もある
- 一部の項目権限(システム項目など)は、変更できないこともある
✅ まとめ(一言で言うと)
オブジェクトの中の「特定の項目」だけを見せたり隠したりするのが 項目レベルセキュリティ。
セキュリティを高めつつ、必要な人だけに必要な情報を見せられます。
Discussion