Salesforceのロールとは共有設定を効率的に管理するために不可欠な機能です。本記事ではロールの基本的な概念から、共有設定や共有ルールとのかかわり、プロファイルとの違い、プロファイルとロールがオーバーラップする領域について詳しく解説します。
本記事を読めば、Salesforceの難解な権限設定をすっきり理解いただけるでしょう。
ロールとは
Salesforceのロールとは、レコードへのアクセス権限を効率的に管理するための機能です。
ロールを使用して組織の階層構造を表現することで、上位のユーザーは下位のユーザーのレコードへのアクセス権を自動的に得ます。
これにより、個別に権限を設定せずともシンプルな権限設定でデータ共有の整合性をとることが出来ます。
下図がロールです。ツリー状の階層構造になっているのが分かります。この階層構造をベースに、下の階層のアクセス権は上の階層も包含して持つ、というのがロールの考え方になります。
また、ロールにおいて同じ階層の隣のロールは同じアクセス権にはなりません。下図でいうと西日本営業と東日本営業は同じ階層の隣のロールです。仮にアクセス権を非公開にしている場合、西日本営業は東日本営業のレコードを閲覧できません。
上位の階層である、営業本部は西日本営業も東日本営業のレコードもアクセス可能です。
これがロールの基本的な考え方です。
ロールは「共有設定」「共有ルール」と組み合わせて使う
ロールの最も一般的な使い方は、「共有設定」「共有ルール」と組み合わせて使うことです。
共有設定と共有ルールについてはこちらの記事で詳しく解説していますが、レコードの共有を制御する機能のことを指しています。
レコードの共有とは、ユーザーAさんが所有者のレコードを、ユーザーBさんも見られるかどうか、というものです。
このレコード共有の制御をオブジェクト単位で定義するのが「共有設定」、そして共有設定を緩和して、一部のロールのユーザーに対してだけ共有を許可するのが「共有ルール」です。
ロールと共有設定
具体的に見ていきましょう。下図が共有設定です。各オブジェクトに対して、非公開や参照のみ…など細かくベースの共有設定を定義できます。
ロールがどこに絡んでくるかというと、赤枠で囲んだ「階層を使用したアクセス許可」です。「階層を使用したアクセス許可」とは、レコードの所有者の上位ロールのユーザーにはアクセス権を与えることを制御します。標準オブジェクトはデフォルトでtrueになっており、変更は出来ません。
ロールと共有ルール
Salesforceでは上位の権限制御機能は厳しく設定し、それを徐々に緩和していくのがベストプラクティスとされています。そして共有ルールとは、共有設定を緩和する機能にあたります。
例えばリード情報を共有するとほかの営業に横取りされてしまう(そんな組織は無いと思いますが)ので、リードを非公開にしたいとします。
さらに、ロール階層的には営業ロールと同一レイヤーに存在する「営業企画」にはリード情報を共有したい、そしてその配下の「営業事務」にも共有したいとすると、「共有ルール」の出番です。
下図のステップ4を見ると分かるように、ロールをもとにして、営業企画と営業企画の下位ロールである営業事務に対し、東日本営業のレコードを共有するよう、制限を緩和しています。
ロールとプロファイルの違い
ロールは何かを共有したいときに、ツリー状の階層構造を用いて共有を効率化するためのツールにすぎません。ロール単体で何かの権限を付与するということはありません。権限設定の基本は飽くまでもプロファイル(そして権限セット)です。
プロファイルの詳細についてはこちらの記事で紹介していますが、プロファイルとはシステム内でユーザーが「何をどこまでできるのか」という権限を管理する、権限設定の主役ともいうべき機能です。
プロファイルを定義することで、Salesforceのさまざまな機能やデータに対する基本的なアクセス権を一元管理することができます。
ロールとプロファイルはそもそも役割が違いますので、同じレイヤーで比較することが難しいです。強いて比較するならば、ロールは共有を効率化するためのツール、プロファイルはプロファイル単体で様々な権限を差配できる制御盤、として認識いただければ大枠合っているかと思います。
ロールとプロファイルがオーバーラップする領域
Salesforceの権限設定は、複数の機能が絡み合って一体となっています。各権限制御のための機能をよく理解して設定しないと、思いもよらぬ権限を与えてしまっていることもあり得ます。
例えば下図はプロファイルのオブジェクト権限を設定するためのセクションです。「すべて表示」「すべて変更」がついていると、共有設定では閲覧不可のレコードに対しても編集することが出来るという超強力な権限です。
共有設定で縛っているから問題ないというわけではなく、共有設定とプロファイル両方の知識が必要な例かと思います。
プロファイル側で「すべて」系の権限がついていなければ、参照や編集がプロファイル上でついていたとしても、共有設定が優先されます。
ここの機能に被りや不透明な部分があるのでロールとプロファイルが混同されやすいのだと思っています。逆にここだけ区別できれば、全く違うものであるとSalesforceの画面を見れば一目瞭然です。
ロールの設定方法
設定画面のサイドメニュー上の検索窓にロールと入れます。サイドメニューにロールが出てきますのでクリックすると下図の画面になります。「ロールの追加」を押します。
ロールの詳細情報を設定していきます。すべて埋めたら保存を押します。ここではサンプルとして、営業本部の配下に営業企画を作成します。
ロールの階層表示に戻ってみてみると、営業本部の配下に営業企画が作成されています。海外営業・西日本営業・東日本営業とは同じ階層のお隣さんとなります。
もし、海外営業・西日本営業・東日本営業の上位ロールとして設定したかったとしたらどうすればよいでしょう?
ロールの設定画面で「このロールの上位ロール」の項目を「CEO」にすればよかった、となります。(この例ではCEOの直下が営業本部なので。)
次に、ロールにユーザーを割り当てていきます。「割り当て」を押します。
下図は割り当て画面です。ユーザーを左側の窓で検索して、右側に移動させて操作します。保存すればロールの設定は完了です。
まとめ
本記事では、ロールの基本的な概念から、共有設定や共有ルールとのかかわり、プロファイルとの違い、プロファイルとロールがオーバーラップする領域について詳しく解説しました。
ロール単体では何の権限制御のための機能もなく、共有設定や共有ルールを定義するためのツールである点がロールのポイントです。
そして、ロール×共有設定で作り上げたレコードアクセスと、プロファイルのオブジェクト設定が交差する場面があることを紹介しました。
これらの点を踏まえて、ぜひ日常の権限設定に活用いただけますと幸いです。