共有設定と制限ルールの併用したレコードアクセス権実証実験

前々回前回で制限ルールについての内容を述べてきました。
本記事は実際に制限ルールがどのように機能するかを共有設定と絡めて検証していきたいと思います。

スポンサーリンク

共有ルールとの併用

実際に制限ルールを使用したアクセス権がどうなるか実機を使用しながら確かめてみましょう。

今回は比較のために、2つのカスタムオブジェクトを使用します。

  • 制限ルールテスト(公開)
  • 制限ルールテスト(非公開)

それぞれ、項目には数値型の「数値」という項目を作成します。
共有ルール及び制限ルールの条件設定用として使用します。
制限ルール条件用の項目を追加

それぞれのオブジェクトに100レコードを挿入します。
数値はそれぞれ1〜100まで割り振ります。

共有設定の組織の共有設定ではそれぞれこのように設定します。

  • 制限ルールテスト(公開)→公開/参照・更新可能
  • 制限ルールテスト(非公開)→非公開

組織の共有設定

制限ルールテスト(非公開)共有ルールには「数値」が30を超えるレコードに対して参照ができるように共有ルールを追加します。
共有ルールの設定

さらに、「数値」が10と20のレコードに対して、共有設定を手動で追加します。
特定のレコードへの手動共有

制限ルールを適用しない状態だと、それぞれの参照範囲は以下のようになります。
【制限ルールテスト(公開)】
数値1〜100までの100レコードが参照可能
共有設定のみのレコードの参照範囲

【制限ルールテスト(非公開)】
手動共有した数値10,20のレコードと共有ルールの条件に該当する31以上のレコードが参照可能
共有設定のみでのレコード参照範囲

それぞれのオブジェクトに制限ルールを作成します。
数値での範囲指定で条件を指定したかったのでが、まだ不等式には対応していないため、今回は数値が40のレコードのみ参照可能となるよう制限ルールを設定します。
制限ルールの追加

制限ルールを適用した後のリスト表示はこうなりました。
どちらのオブジェクトも数値が40のレコードのみ参照できるようになりました。

【制限ルールテスト(公開)】
制限ルールが適用されたレコードのみが表示

【制限ルールテスト(非公開)】
制限ルールが適用されたレコードのみが表示

今後は条件を変更して数値が10のレコードのみ参照できるよう制限ルールの条件を変更します。

【制限ルールテスト(公開)】
制限ルールテスト(公開)はもちろん数値10のレコードが参照可能です。
制限ルールを満たす公開のレコードは参照可能

【制限ルールテスト(非公開)】
数値が10のレコードは手動共有されているので、こちらも問題なく表示されています。
手動共有されている制限ルールを満たすレコードは参照可能

さらに条件を変更して数値が1のレコードのみ参照できるよう制限ルールの条件を変更します。
【制限ルールテスト(公開)】
制限ルールテスト(公開)はもちろん数値1のレコードが参照可能です。
制限ルールを満たす公開のレコードは参照可能

【制限ルールテスト(非公開)】
制限ルールテスト(非公開)の数値1のレコードは制限ルールの条件を満たすものの、共有設定で条件外のレコードのため参照ができません
共有設定適用外で制限ルールを満たすレコードは参照不可

まとめ

このように、従来の共有設定をベースとして、条件によってフィルタリングをかけるのが制限ルールの役割となります。
共有設定のような積み上げて権限を付与する考え方とは異なるのでしっかり押さえておきましょう。

公式チックな書き方ではありますが、共有設定と制限ルールを併用する際のレコードのアクセス権は以下のように表現できます。

{(組織の共有設定:公開) or (共有ルール:公開) or (手動共有:公開)} and (制限ルールを満たす(※)) and (オブジェクトに参照権限がある)
※制限ルール適用外のユーザは常にTrue

上記の式を表にまとめるとこうなります。
共有設定と制限ルールのアクセス権早見表

ちなみに、プロファイル・権限セットで「すべて参照」権限が付与されている場合は、制限ルール関係なくそちらが勝つ仕様となっています。

コメント