Skip to main content
3 月 5 日~ 6 日にサンフランシスコで開催される TDX (Salesforce+ でも配信) で「Developer Conference for the AI Agent Era (AI エージェント時代に向けた開発者向けカンファレンス)」にぜひご参加ください。お申し込みはこちら

Salesforce Starter でビジネスの成長を実現

営業、サービス、マーケティングをカバーする 1 つのアプリで顧客との関係を深める

30 日間の無料トライアルを開始

予想時間

レコードへのアクセスの制御

学習の目的

この単元を完了すると、次のことができるようになります。

  • レコードへのアクセスを制御する 4 種類の方法を挙げる。
  • 4 種類あるレコードレベルのセキュリティコントロールを使用する状況をそれぞれ説明する。
  • さまざまなレコードコントロールがどのように連携し合うか説明する。
  • 組織の共有設定を実行してレコードへのアクセスを制御する。
メモ

メモ

日本語で受講されている方へChallenge は日本語の Trailhead Playground で開始し、日本語の値をコピーして貼り付けます。日本語の組織で Challenge が不合格だった場合は、(1) この手順に従って [Locale (地域)] を [United States (米国)] に切り替え、(2) [Language (言語)] を [English (英語)] に切り替えてから、(3) [Check Challenge (Challenge を確認)] ボタンをクリックしてみることをお勧めします。

翻訳版 Trailhead を活用する方法の詳細は、自分の言語の Trailhead バッジを参照してください。

レコードレベルセキュリティ

データアクセスを厳密に制御するには、特定のユーザーに特定のオブジェクトの特定の項目の参照を許可したうえで、ユーザーが参照可能なレコードを個別に制限します。アクセス可能な各オブジェクトのどのレコードをユーザーが参照および編集できるかは、レコードアクセス権によって決まります。まず、次の点を自問します。

  • ユーザーがアクセスする必要があるのは、すべてのレコードか、それともサブセットのみか?
  • サブセットの場合、ユーザーがアクセスできるかどうかを決定するルールは何か?

サンプルの社員募集アプリケーションで、採用担当者に必要なオブジェクトレベルの権限を付与するために、「Recruiter (採用担当者)」という新しい権限セットグループを作成しました。採用担当者がこうしたオブジェクトを削除できないように、採用関連のオブジェクトを削除する権限を制限しました。ただし、採用担当者に採用オブジェクトを作成、参照、編集する権限を付与したからといって、必ずしも採用担当者が採用オブジェクトのすべてのレコードを参照または編集できるわけではありません。こうした制限が生じるのは、レコードレベルのセキュリティにより、所有していないレコードに対するユーザーのアクセスが制御されるためです。

レコードレベルの権限によってアクセスが階層状に拡大されるため、レコードレベルのどの機能が設定され、ユーザーが有するアクセスレベルをどのように理解するかを把握することが大切です。

レコードレベルのアクセス権は、次の 4 つの方法で制御できます。リストの下に行くほどアクセス権が大きくなります。まず、組織の共有設定で最も制限が厳しいレベルにデータをロックダウンしたうえで、レコードレベルの他のセキュリティツールを使用して、必要に応じて選択したユーザーにアクセス権を付与します。

  • 組織の共有設定 — 所有していないレコードに対するユーザーのデフォルトのアクセスレベルを指定します。
  • ロール階層 — マネージャーには常にその部下と同じレコードへのアクセス権を付与します。階層の各ロールは、ユーザーまたはユーザーグループが必要とするデータアクセスのレベルを表します。
  • 共有ルール — 特定のユーザーグループに対して組織の共有設定の例外を自動的に作成して、所有していないレコードや通常は参照できないレコードへのアクセス権を付与します。
  • 共有の直接設定 — レコード所有者または十分な権限を有するユーザーが、他の方法ではレコードにアクセスできないユーザーに参照および編集アクセス権を付与できるようにします。

表示レベルの拡大

各種データの表示およびアクセスは、次の基本原則に従って、上記のセキュリティコントロール間の連携により決定されます。

  • オブジェクトに対するユーザーのベースライン権限は、権限セットと権限セットグループとプロファイルの組み合わせで決まる。
  • 所有しないレコードに対するユーザーのアクセス権は、まず組織の共有設定で定義される。
  • 組織の共有設定が [Public Read/Write (公開/参照・更新可能)] より低い場合は、ロール階層を使用して特定のロールにアクセスを許可できる。
  • 共有ルールを使用して、追加のユーザーグループに対してアクセス権を拡張できる。
  • 各レコード所有者はレコードの [共有] ボタンを使用して、個別のレコードを直接他のユーザーと共有できる。
メモ

Salesforce は、各自のビジネスニーズに応じて役立つ可能性があるレコードアクセス権を管理するための追加機能を用意しています。詳細は、Salesforce ヘルプの「ユーザーのレコードアクセス権の設定」を参照してください。

このモジュールの残りの部分では、レコードへのアクセス制御の詳細を見ていきます。この単元では、組織の共有設定について詳しく説明します。

組織の共有設定

組織の共有設定は、所有していないレコードに対するユーザーのベースラインのアクセスレベルを指定します。この設定は、最も制限されるユーザーが有するアクセスを表します。組織の共有設定を使用してデータをロックダウンした上で、他のレコードレベルセキュリティおよび共有ツール (ロール階層、共有ルール、共有の直接設定) を使用して、必要に応じて他のユーザーにデータを開放します。

オブジェクト権限が、オブジェクトの全レコードに対するベースラインのアクセスレベルを決定するのに対し、組織の共有設定は、ユーザーが所有していないレコードに対するこれらの権限を変更します。組織の共有設定によって、オブジェクト権限で付与されるレベルを超えるアクセス権をユーザーに付与することはできません。内部ユーザーと外部ユーザーのそれぞれに、オブジェクト種別ごとの組織の共有設定を定義できます。

アプリケーションに必要な組織の共有設定を決定するには、オブジェクトごとに次のような自問を立てます。

  1. このオブジェクトで最も制限されたユーザーは誰か?
  2. このオブジェクトにこのユーザーに参照を許可しないインスタンスがあるか?
  3. このオブジェクトにこのユーザーに編集を許可しないインスタンスがあるか?

オブジェクトの共有モデルを決定するための図。

答えに応じて、オブジェクトの共有モデルを次の設定のいずれかにできます。

  • 非公開: レコードの所有者と階層内でそのロールよりも上位のユーザーのみが、レコードに対する参照、編集、レポートを実行できます。
  • 公開/参照のみ: すべてのユーザーがレコードに対する参照とレポートを実行できますが、レコードを編集できるのはレコードの所有者と階層内でそのロールよりも上位のユーザーのみです。
  • 公開/参照・更新可能: すべてのユーザーがすべてのレコードに対する参照、編集、レポートを実行できます。
  • 親レコードに連動: レコードが属するオブジェクトにユーザーが参照、編集、削除を実行できる場合は、そのレコードに対してもユーザーが同じ操作を実行できます。

オブジェクトの組織の共有設定が [非公開] または [公開/参照のみ] の場合、システム管理者は、ロール階層を設定するか共有ルールを定義することで、ユーザーにレコードに対する追加のアクセス権を付与できます。共有ルールは、追加のアクセス権を付与するためにのみ使用できます。組織の共有設定によって最初に定められた範囲を超えたレコードへのアクセス権を制限するために、共有ルールを使用することはできません。

例として、社員募集アプリケーションの Position (職種) オブジェクトについて上記の質問に答えてみましょう。

  1. このオブジェクトで最も制限されたユーザーは誰か?

職種の参照のみが許可されている標準従業員。

  1. このオブジェクトにこのユーザーに参照を許可できないインスタンスがあるか?

いいえ。標準従業員には、ボーナスの最小値と最大値が表示されませんが、すべての職種レコードを参照できます。

  1. このオブジェクトにこのユーザーに編集を許可できないインスタンスがあるか?

はい。標準従業員は、職種レコードを編集できません。

3 つ目の質問への答えが「はい」のため、Position (職種) オブジェクトの共有モデルを「公開/参照のみ」に設定する必要があります。他の採用オブジェクトについても同じ作業を繰り返すことによって、オブジェクトに適した組織の共有設定を簡単に決定できます。標準従業員は、各オブジェクトに対する制限が最も厳しいユーザーであり、特定の従業員が参照できない応募者、求人応募、審査レコードが存在します。そのため、Candidate (候補者) オブジェクト、Job Application (求人応募) オブジェクト、Review (審査) オブジェクトの共有モデルはすべて [非公開] に設定する必要があります。

メモ

Review (審査) オブジェクトには組織の共有設定を適用できません。このオブジェクトは主従関係の従側にあり、従側のレコードは親の共有設定を自動的に継承するためです。したがって、このアプリケーションでは、Review (審査) オブジェクトが自動的に [Private (非公開)] に設定されます。

組織の共有設定の設定

組織の共有設定は、制限が最も厳しいユーザーに付与されるベースラインのアクセス権を指定します。

  1. [Setup (設定)] の [Quick Find (クイック検索)] ボックスで [Sharing Settings (共有設定)] を検索して選択します。
  2. [組織の共有設定] 領域で [編集] をクリックします。

[Sharing Settings (共有設定)] 設定ページ

  1. オブジェクトごとに、デフォルトの内部アクセス権とデフォルトの外部アクセス権を選択します。先ほど説明したとおり、[Position (職種)] のデフォルトの内部アクセス権は [Public Read Only (公開/参照のみ)] に設定し、[Candidate (応募者)]、[Job Application (求人応募)]、[Review (審査)] は [Private (非公開)] に設定します。デフォルトの外部アクセスについては、4 つのオブジェクトとも [Private (非公開)] に設定します。
メモ

一部の標準オブジェクトは、組織の共有設定の異なるオプションを使用します。カスタムオブジェクトの組織の共有設定のオプションには、[非公開]、[公開/参照のみ]、[公開/参照・更新可能] があります。

  1. ロール階層を使用した自動アクセスを無効にするには、デフォルトのアクセスが [Controlled by Parent (親レコードに連動)] ではないカスタムオブジェクトの [Grant Access Using Hierarchies (階層を使用したアクセス許可)] をオフにします。このチェックボックスをオフにすると、レコード所有者と共有機能によってアクセス権が付与されたユーザーのみがそのレコードにアクセスできます。
  2. アクセスの設定が終了したら、[Save (保存)] をクリックします。
メモ

組織の共有設定を更新すると、共有再適用が自動的に実行され、レコードへのアクセスの変更が適用されます。再適用が完了すると通知メールが送信され、[共有設定] ページを更新して変更内容を確認できます。更新状況を表示するには、[Setup (設定)] の [Quick Find (クイック検索)] ボックスで [View Setup Audit Trail (設定変更履歴の参照)] を検索して選択します。

組織の共有設定でデータをロックダウンした後で、一部のユーザーにとって制限が厳しすぎるのではないかと思われることがあります。その場合は、他のレコードレベルのセキュリティコントロール (ロール階層、共有ルール、共有の直接設定など) を使用して、必要に応じて特定の従業員に選択的にレコードへのアクセスを許可できます。

リソース

Salesforce ヘルプで Trailhead のフィードバックを共有してください。

Trailhead についての感想をお聞かせください。[Salesforce ヘルプ] サイトから新しいフィードバックフォームにいつでもアクセスできるようになりました。

詳細はこちら フィードバックの共有に進む