こんにちは、にいるです。
共有ルールとプロファイルでは同じようにアクセス権の制御が行えます。
この2つがユーザに影響していると、どちらかのアクセスレベルが上書きされてしまいます。
もし、このプロファイルと共有ルールが競合する場合、どちらが優先されるでしょうか。
今回は、この点についてSalesforceを実際に使いながら検証していこうと思います。
1.組織の共有設定
まず、最初に組織の共有設定です。
カスタムオブジェクト「共有ルールテスト」を作成して、非公開モデルにしておきます。
これで組織全体ではオブジェクトへの参照は不可になりました。
2.プロファイルの設定
次にプロファイル設定です。
今回は参照、作成、編集、削除の4つのアクセス権限をプロファイルに付与しておきます。
3.共有ルール
そして、共有ルールでは条件ベースのルールを作っておきます。
共有ルールで使用するための「共有チェック」という名前のカスタム項目をつくりました。
データ方はチェックボックス形にしておきます。
共有ルールは、共有チェックがTrueであったら参照権限を付与すると言うルールにしておきます。
4.ユーザの設定
最後に検証するユーザの準備です。
共有ルールで指定したロール「Japan セールスディレクター」に所属するユーザにプロファイル「共有ルール」を割り当てておきます。
5.いざ、検証
今回レコード5件作成しています。
管理番号が奇数のものはチェックボックスをTrueにしています。
これをレコード所有者でないユーザで確認すると、偶数番号レコードは見えませんでした。
プロファイルが負け、共有ルールが優先されています。
なぜなら、共有チェックがFalseのものにアクセスできなくなっているからです。
また、レコードの編集ボタンを押すとアクセス権限がないと怒られました。
ちゃんとアクセスレベルも参照のみになっていますね。
新規作成もできます。
これは、レコードの共有ルールとは関係なく、プロファイルで「作成」権限が与えられているからでした。
作成権限を外すと、新規ボタンもコピーボタンもなくなっていました。
■新規ボタンの確認
■コピーボタンの確認
6.まとめ
いかがでしたでしょうか。
まとめると、
共有ルール > プロファイルでした。
ただ、オブジェクト権限全体ではなく、参照、作成、更新、削除のレベルでの適用になるようです。
作成、更新、削除はプロファイル全体での適用で、参照は共有ルールの適用でした。
結論、レコード毎に設定されます!
今回の例では、参照権限がプロファイルでは全体でしたが、共有ルールで条件に合致するレコードのみしか表示されませんでした。
そして、新規と削除は正常に稼働していました。
この記事で紹介するのはシンプルな内容でしたが、いざ実装となると結構ややこしいことになりそうですね。
皆さんもぜひ色々と試してみてください。
他にも色々と標準機能やSalesforce機能について紹介していますので、ご覧ください。
ではでは!