Salesforce 認定 Platform Sharing and Visibility アーキテクト 無料問題 5 / 10 ・ 分野2: レコードへのアクセス
ユーザーの組織の共有設定を社内「非公開」にした。カスタムオブジェクト「プロジェクト」のメンバーになった社員どうしが、互いのユーザーレコードを見られるようにしたい。開発者が、Apex でユーザーの共有のレコードを作って開く案を出した。Security Implementation Guide(Winter '23)のユーザーの共有の説明に合うものはどれか。
- ユーザーでも Apex 管理共有は使えるが、実行するユーザーに Modify All Data の権限が要る
- ユーザーのレコードでは Apex 管理共有はサポートされないので、公開グループとユーザーの共有ルールで開く
- ユーザーでも Apex 管理共有が使え、Apex の共有の理由を作れば、プロジェクトごとに区別して付けられる
- ユーザーのレコードは手動共有もできないので、ユーザーの既定を「公開/参照のみ」に戻す
正解と解説を見る
正解: B
正解の理由
ユーザーの共有の説明は、ユーザーのレコードの手動共有の項で、Apex 管理共有はサポートされないと書く。ユーザーのレコードを開く手段は、ユーザーの組織の共有設定・公開グループ・ロール・テリトリーのメンバーで決めるユーザーの共有ルール・手動共有・「すべてのユーザーの参照」の権限で、プログラムで共有のレコードを作る方法は用意されていない。
違う選択肢
「ユーザーでも Apex 管理共有が使え、Apex の共有の理由を作れば、プロジェクトごとに区別して付けられる」… ユーザーのレコードでは Apex 管理共有がサポートされない。Apex の共有の理由もカスタムオブジェクトで使う仕組みで、ユーザーには作れない。
「ユーザーでも Apex 管理共有は使えるが、実行するユーザーに Modify All Data の権限が要る」… 権限の問題ではなく、ユーザーのレコードの共有では Apex 管理共有そのものがサポートされない。
「ユーザーのレコードは手動共有もできないので、ユーザーの既定を「公開/参照のみ」に戻す」… ユーザーのレコードの手動共有は Salesforce Classic で使え、相手の既定より大きいアクセスを付けられる。既定を戻す以外に手段が無いわけではない。
要件への当て方
メンバーの顔ぶれが変わる要件なら、プロジェクトごとに公開グループを用意してメンバーを出し入れし、そのグループどうしをユーザーの共有ルールで結ぶ。グループのメンバーの出し入れはプログラムで行えるので、Apex 管理共有の代わりにグループの側を自動にする。
Salesforce 認定 Platform Sharing and Visibility アーキテクトの演習アプリ(無料10問・全問は解錠で)へ