セーブポイントが見つからない

【Salesforce】共有ルールとプロファイルの比較について

こんにちは、にいるです。

共有ルールとプロファイルでは同じようにアクセス権の制御が行えます。

この2つがユーザに影響していると、どちらかのアクセスレベルが上書きされてしまいます。

もし、このプロファイルと共有ルールが競合する場合、どちらが優先されるでしょうか。

今回は、この点についてSalesforceを実際に使いながら検証していこうと思います。

【ヘルプ】デフォルトのアクセス設定の共有

1.組織の共有設定

まず、最初に組織の共有設定です。

カスタムオブジェクト「共有ルールテスト」を作成して、非公開モデルにしておきます。

これで組織全体ではオブジェクトへの参照は不可になりました。

2.プロファイルの設定

次にプロファイル設定です。

今回は参照、作成、編集、削除の4つのアクセス権限をプロファイルに付与しておきます。

3.共有ルール

そして、共有ルールでは条件ベースのルールを作っておきます。

共有ルールで使用するための「共有チェック」という名前のカスタム項目をつくりました。
データ方はチェックボックス形にしておきます。

共有ルールは、共有チェックがTrueであったら参照権限を付与すると言うルールにしておきます。

4.ユーザの設定

最後に検証するユーザの準備です。

共有ルールで指定したロール「Japan セールスディレクター」に所属するユーザにプロファイル「共有ルール」を割り当てておきます。

5.いざ、検証

今回レコード5件作成しています。

管理番号が奇数のものはチェックボックスをTrueにしています。

これをレコード所有者でないユーザで確認すると、偶数番号レコードは見えませんでした。

プロファイルが負け、共有ルールが優先されています。

なぜなら、共有チェックがFalseのものにアクセスできなくなっているからです。

また、レコードの編集ボタンを押すとアクセス権限がないと怒られました。

ちゃんとアクセスレベルも参照のみになっていますね。

新規作成もできます。
これは、レコードの共有ルールとは関係なく、プロファイルで「作成」権限が与えられているからでした。

作成権限を外すと、新規ボタンもコピーボタンもなくなっていました。

■新規ボタンの確認

■コピーボタンの確認

6.まとめ

いかがでしたでしょうか。

まとめると、
共有ルール > プロファイルでした。

ただ、オブジェクト権限全体ではなく、参照、作成、更新、削除のレベルでの適用になるようです。

作成、更新、削除はプロファイル全体での適用で、参照は共有ルールの適用でした。

結論、レコード毎に設定されます!

今回の例では、参照権限がプロファイルでは全体でしたが、共有ルールで条件に合致するレコードのみしか表示されませんでした。

そして、新規と削除は正常に稼働していました。

この記事で紹介するのはシンプルな内容でしたが、いざ実装となると結構ややこしいことになりそうですね。

皆さんもぜひ色々と試してみてください。
他にも色々と標準機能やSalesforce機能について紹介していますので、ご覧ください。

ではでは!