レコードアクセス制限を行う
ユーザに応じたレコードアクセス制限を理解する
共有設定機能について把握する
0.はじめに
こちら(プロファイルごとのオブジェクトアクセス設定)の記事では、ユーザプロファイル及び権限セットごとに「オブジェクト」の操作権限を設定する方法を紹介しました。本記事ではさらに「レコード」ごとのアクセス制限について紹介します。
Salesforce では、
- 各ユーザごとに参照できるレコード
- 参照はできるが編集はできないレコード
- 一切の参照ができないレコード
などをより詳細に調整することができます。例えば以下の様なケースを想定してみましょう。
例:
条件1 プロファイルが「営業」のユーザA 及び ユーザB が存在する
条件2 ユーザA は自分の部署外の取引先は「参照」しかできないようにしたい
条件3 ユーザB はすべての取引先の「参照」及び「編集」ができるようにしたい
こういった、
対象のオブジェクトは同じ(この場合は「取引先」)だが、ユーザ及びレコードに応じて参照、編集の可否を調整したい
という要望に対して本記事で紹介する方法が活用できます。
1.組織の共有設定
デフォルトではレコードのアクセス制限はされていません。つまり、オブジェクトの操作権限があればどのユーザでもそのオブジェクトのすべてのレコードを参照、編集することができるようになっています。
この状態だと、例に挙げた「部署外の取引先は参照しかできない」という条件を満たすことが
できないため、まずはレコードのアクセス制限設定を行います。
設定方法
- [ 設定 ] | [ セキュリティのコントロール ] | [ 共有設定 ] をクリックして組織の共有設定画面を表示させます。表示後 [ 編集 ] ボタンをクリックします。
- 共有設定変更したいオブジェクトを選択して、プルダウンで変更します。変更後 [ 保存 ] ボタンをクリックします。
- 右上の [ 歯車マーク ] | [ 設定 ] をクリックし、[ クイック検索 ] に「共有設定」と入力 、[ 共有設定 ] をクリックします。共有設定一覧表示後 [ 編集 ] をクリックします。
- 共有設定変更したいオブジェクトを選択して、プルダウンで変更します。変更後 [ 保存 ] をクリックします。
これで、各ユーザは自分が所有者ではない「取引先」オブジェクトのレコードは
参照しかできないようになりました。
Salesforceのレコードは一つ一つ「所有者」が設定されます。
所有者は基本的には「ユーザ」の情報が指定されます。(より高度な設定を行うと「キュー」という「ユーザ」と少し異なる概念を指定することが可能となりますがここでは割愛します)
所有者(ユーザ)は自分の所有するレコードに対しては「フルアクセス」という権限を有するようになっており、共有設定で「非公開」や「公開/参照のみ」と設定されていても、この権現を有しているレコードに対しては参照も編集もすることが可能となります。
Salesforce システム上でレコード操作の制限を加える場合は、この「共有設定」でしか制限を加えることができません。そのため、例えばセキュリティの観点上
「取引先」オブジェクトのレコードの一部を一切閲覧させたくないユーザ
が組織にいる場合、必ず「取引先」オブジェクトの共有設定を「非公開」にする必要があります。(取引先オブジェクトそのものへのアクセスをさせたくない場合はプロファイルの設定で十分です)
2.その他の共有設定機能
組織の共有設定でレコードのアクセス制限を行った場合、そのままでは各ユーザは自分が所有者であるレコードに対してしか「フルアクセス」できなくなります。
Salesforceではその状態を緩和し別ユーザにアクセス権限を付与するための設定が数多くあります。ここでは設定名称とそれらの機能についての簡単な説明をします。
ロール階層
ロールは会社の組織図に相当するものとなります。
例えば、「社長」「営業部長」「営業部社員」といったロールを作成し
それらのロールを階層化して組み立てることが可能となります。作成したロールは各ユーザに割り当てることができます。
ロール設定を行うと、上位ロールのユーザは下位ロールのユーザの所有するレコードへの
フルアクセス権限を自動的に有するようになります。
共有ルール
レコードがある条件を満たした場合、自動的に共有(アクセス権限の付与)を行うことが出来る機能です。
共有対象は、ユーザ、ロール、公開グループ(下記で説明)から選択できます。
手動共有
特定のレコードをユーザの手で共有する機能です。
普段はデータをアクセスさせたくないユーザに対して例外的に共有する際などに利用します。
公開グループ
ユーザ及びロールを独自にグルーピングしておくことができる機能です。
作成されたグループはレコードの共有先として選択可能となります。他の機能とは異なりアクセス権限の付与をするための機能ではありませんが、異なるロールやユーザで例外的に同等のレコードアクセス権限を付与したい場合などに利用します。