💭

【Salesforce】 特定の「項目」へのアクセス制限

に公開

🧱【前提】3段階のアクセス制御

① オブジェクトレベルのアクセス制御(=表全体)

  • 何の種類のデータを使えるか? を決めます。
  • たとえば、「応募者(Candidate)」というオブジェクト(≒表)そのものをユーザーが見たり、編集したりできるかを設定。
  • ✅ 使用するもの:プロファイル または 権限セット
  • 🧠 例:「営業チームには顧客情報(Account)は見せるが、採用情報(Candidate)は見せない」

② 項目レベルのアクセス制御(=列単位)

  • そのオブジェクトの中の、どの項目(フィールド)を使えるか?
  • たとえば、応募者の「名前」は見せるけど、「社会保障番号(SSN)」は非表示にしたいときなど。
  • ✅ 使用するもの:プロファイル または 権限セット
  • 🧠 例:「面接官は応募者の連絡先を見られるが、給与情報は見られない」

③ レコードレベルのアクセス制御(=行単位)

  • 同じオブジェクト内でも、どのデータの行を見せるか?
  • たとえば、「自分が担当している応募者だけを見られるようにしたい」場合など。
  • ✅ 使用するもの:組織の共有ルール、ロール階層、手動共有など
  • 🧠 例:「採用担当マネージャーは全員分の応募者が見えるが、面接官は自分に割り当てられた人だけ見える」

🔎【項目レベルセキュリティ(Field-Level Security)とは?】

  • オブジェクトの中にある 特定の「項目(フィールド)」に対して、ユーザーが「見てもいい」「編集してもいい」を制御できます。

  • 例:

    • 「応募者」オブジェクトの中で「電話番号」や「社会保障番号」は見せたくない
    • 「給与」フィールドだけ編集できないようにしたい

✅ ページレイアウトとの違い

  • ページレイアウトは「画面上に見せるかどうか」だけ。
  • 項目権限は「レポートや検索などすべての場面で見せるかどうか」を制御します。

🛠【どう設定するの?】

項目のアクセス制御は以下のように設定できます。

権限セットやプロファイルで設定

  • 権限セット:柔軟に個人に追加で権限を与えたいときに使う
  • プロファイル:ベースとなる権限。全体的な方針

設定手順(簡略化)

  1. 権限セットを作成
  2. 「応募者」などのオブジェクトを選択
  3. その中の項目ごとに「参照」「編集」などのアクセス可否をチェック
  4. 権限セットをユーザーに割り当てるか、グループにまとめて使う

🤖【実際の例】

  • 面接官が「応募者」レコードを更新できるようにする

    • Apex / C# のスキルチェックは「見て・編集OK」
    • 社会保障番号や電話番号は「見せない」
    • 採用日などは「見せるだけ(編集NG)」

⚠️【補足ポイント】

  • 項目を新しく作ったときに、複数の権限セットに一括で権限を設定する機能もある
  • 一部の項目権限(システム項目など)は、変更できないこともある

✅ まとめ(一言で言うと)

オブジェクトの中の「特定の項目」だけを見せたり隠したりするのが 項目レベルセキュリティ
セキュリティを高めつつ、必要な人だけに必要な情報を見せられます。


Discussion