ユーザのアクセス権の制御
| 使用可能なインターフェース: Salesforce Classic (使用できない組織もあります) および Lightning Experience の両方 |
| 使用できるデータ管理オプションは、Salesforce のエディションによって異なります。 |
- オブジェクトレベルセキュリティ (権限セットおよびプロファイル)
- オブジェクトレベルセキュリティ (つまり、オブジェクト権限) で提供されているのは、データアクセスを制御するのに最も弱い方法です。オブジェクト権限を使用すると、ユーザがリードや商談などの特定のオブジェクトタイプのインスタンスを参照、作成、編集または削除することを防止できます。また、選択されたユーザに対してタブやオブジェクトを非表示にできるため、それらのユーザはそのようなデータの存在を知ることもありません。
- 権限セットおよびプロファイルでオブジェクト権限を指定できます。権限セットやプロファイルは、アプリケーションでユーザが実行できる操作を決定する設定と権限の集合です。設定は、グループのメンバーに同じフォルダの権限と同じソフトウェアへのアクセス権限が割り当てられる、Windows ネットワークのグループと似ています。
- プロファイルは通常、Salesforce システム管理者や営業担当などユーザの職務ごとに定義されます。1 つのプロファイルを多数のユーザに割り当てることができますが、1 人のユーザには 1 つのプロファイルのみを割り当てることができます。権限セットでは、ユーザにさらなる権限やアクセス設定を指定できます。ユーザの権限およびアクセスをより簡単に管理できるようになりました。これは、1 人のユーザに複数の権限セットを割り当てることができるためです。
- 項目レベルセキュリティ (権限セットおよびプロファイル)
- オブジェクトへのアクセス権を許可しても、そのオブジェクトの個々の項目へのアクセスは制限する必要がある場合があります。項目レベルセキュリティ (つまり、項目権限) は、オブジェクトの特定項目の値をユーザが参照、編集、削除できるかどうかを制御します。機密項目はオブジェクト全体を隠さずに保護できます。権限セットおよびプロファイルで項目権限を制御することもできます。
- 項目権限は、関連リスト、リストビュー、レポート、検索結果など、アプリケーションの任意の部分の項目の表示を制御します。ユーザが特定項目にアクセスできないようにするには、項目権限を使用します。その他の設定では、項目を同程度に保護できません。ページレイアウトは、詳細ページと編集ページの項目の表示のみを制御するものです。
- レコードレベルセキュリティ (共有)
- オブジェクトレベル、項目レベルのアクセス権限を設定した後で、レコードにアクセス設定を指定できます。レコードレベルセキュリティを使用して、ユーザに一部のオブジェクトレコードのアクセス権限を付与し、他のオブジェクトレコードのアクセス権限を付与しないようにできます。すべてのレコードはユーザまたはキューが所有します。所有者はレコードにフルアクセスできます。階層では、階層の上位のユーザは、そのユーザより階層の下位にいるユーザに対するアクセス権と同じアクセス権が必ず許可されます。このアクセス権は、ユーザが所有するレコードとそのユーザと共有されているレコードに適用されます。
- レコードレベルセキュリティを指定するには、組織の共有設定を行い、階層を定義して、共有ルールを作成します。
- 組織の共有設定
レコードレベルセキュリティではまず、各オブジェクトの組織の共有設定を指定します。組織の共有設定では、ユーザが互いのレコードに対して持つデフォルトのアクセスレベルを指定します。
組織の共有設定を使用してデータを最も制限の厳しいレベルで保護します。他のレコードレベルのセキュリティや共有ツールを使用して、他のユーザに選択的にアクセス権を付与します。たとえば、商談を参照および編集するオブジェクトレベルの権限をユーザに許可し、組織全体の共有設定は参照のみであるとします。デフォルトでは、これらのユーザは、すべての商談レコードを参照することはできますが、レコードの所有者であるか、他の権限が付与されていない限り、これらのレコードを編集することはできません。
- ロール階層
組織の共有設定を指定したら、レコードに対するより幅広いアクセス権を許可する一番の方法はロール階層の使用です。組織図と同様、ロール階層は、ユーザまたはユーザグループが必要とするデータアクセスのレベルを示します。ロール階層によって、組織のデフォルト設定に関係なく、階層の上位のユーザは常に階層の下位のユーザと同じデータにアクセスできます。組織図に一致する代わりに、階層の各ロールでユーザまたはユーザグループが必要とするデータのアクセスレベルを示すことができます。
同様に、テリトリー階層を使用して、レコードへのアクセス権限を共有することができます。「テリトリーレコードのデフォルトのユーザアクセス権の定義」を参照してください。
- 共有ルール
共有ルールでは、ユーザセットを対象に、組織全体の共有設定に自動的な例外を設けることができます。共有ルールを使用して、所有していないレコードや通常は参照できないレコードへのアクセス権をこれらのユーザに付与します。ロール階層と同様、共有ルールは、レコードに対する追加のユーザアクセス権を許可するためだけに使用され、組織の共有設定に比べて厳密な制限ではありません。
- 共有の直接設定
特定のレコードセットに対するアクセス権限を必要とするユーザの一貫性のあるグループを定義することが必要な場合があります。レコード所有者は共有の直接設定を使用して、アクセス権限を持たないユーザに参照権限および編集権限を与えます。共有の直接設定は組織の共有設定、ロール階層、または共有ルールのように自動化されていません。ただし、レコード所有者に、レコードを参照する必要があるユーザとレコードを共有する柔軟性を提供します。
- ユーザ共有
ユーザ共有では、内部ユーザまたは外部ユーザを組織内の別のユーザに対して表示したり、非表示にしたりできます。ユーザ共有ルールは、公開グループ、ロール、またはテリトリーへのメンバーシップに基づいています。このため、ユーザ共有ルールを作成する前に、適切な公開グループ、ロール、またはテリトリーを作成する必要があります。各共有ルールでは、共有元グループのメンバーが共有先グループのメンバーと共有されます。ユーザはロール階層内で自分より下位のユーザと同じアクセス権を継承します。
- Apex による共有管理
共有ルールと共有の直接設定で必要な制御が提供されない場合、Apex による共有管理を使用できます。Apex による共有管理により、開発者はプログラムでカスタムオブジェクトを共有できます。Apex による共有管理を使用してカスタムオブジェクトを共有した場合は、「すべてのデータの編集」権限を持つユーザのみが、カスタムオブジェクトのレコードの共有を追加または変更できます。共有アクセス権は、レコード所有者が変わっても維持されます。
- 制限ルール
制限ルールをユーザに適用すると、共有設定を通じてユーザが参照アクセス権を持っていたデータの範囲がさらに限定され、設定されたレコード条件に一致するレコードのみになります。この動作は、永続的である点を除いて、リストビューやレポートでの結果の絞り込みに似ています。
- 範囲設定ルール
範囲設定ルールでは、ユーザが自分に関連したレコードのみを表示できるように条件を設定できます。範囲設定ルールは、ユーザがすでに持っているレコードアクセス権を制限するものではありません。ユーザに表示されるレコードの範囲を設定するものです。ユーザは引き続き共有設定に従ってアクセス権を持っているすべてのレコードを開いたりこれらのレコードに関してレポートしたりできます。
- 組織の共有設定