Administrator 練習問題 Q10
Cloud Kicks のプラットフォーム管理者は、データプライバシー要件を満たすために、各ユーザー自身の財務レコードだけがレポートに表示されるようにする必要があります。管理者はこれをどのように達成すべきでしょうか?
左の○で回答を選択。本文を押すと横線で除外でき、もう一度押すと戻せます。
1つ選択してください(0/1)
正答:B. 各オブジェクトの組織の共有設定を「非公開」に設定します。
解説
前提知識
レコードの見え方は「共有設定」で決まる
Salesforce で「誰がどのレコードを見られるか」を決めているのは、レポートではなく、データ側の共有設定です。
組織の共有設定(OWD)とは
各オブジェクトごとに定める、「自分が所有していないレコードを、どこまで見せるか」の基準線です。主に3つの値を取ります。
| 設定 | 他人のレコードを… |
|---|---|
| 非公開 | 見られない(自分が所有するレコードだけ) |
| 公開/参照のみ可能 | 見られるが編集できない |
| 公開/参照・更新可能 | 見られて編集もできる |
公式の記述がこの問題の考え方そのままです。「組織の共有設定は、ユーザーが所有していないレコードへの基本アクセスレベルを指定する。この設定は、最も制限されたユーザーが持つべきアクセスを表すものであるべきだ。まず組織の共有設定でデータを閉じ、その上で、ロール階層・共有ルール・手動共有などの他のツールで、必要な人に向けてデータを開いていく」。
📌 共有設計の鉄則は「まず閉め、必要な分だけ開ける」。「まず開けて、見せたくないものを後から隠す」という発想はSalesforceには存在しません。これだけで本問の選択肢の半分が消えます。
レポートは「見えるものを集計する」だけ
ここを勘違いする人が非常に多いので、はっきり書いておきます。 レポートは、そのユーザーがもともとアクセスできるレコードの中からしか集計しません。だから、データ側を非公開にしておけば、レポートを何もしなくても自動で自分のレコードしか出てこなくなります。
設問の要件を整理する
- データプライバシー要件である(見せてはいけない)
- 各ユーザーに見せてよいのは自分の財務レコードだけ
- 実現の場としてレポートが挙がっている
💡 問題文に「レポート」と書いてあっても、セキュリティの要件なら手を入れるのはデータ側です。レポートをいじる選択肢はほぼ常にトラップです。
選択肢の検討
A. 組織の共有設定を「公開/参照・更新可能」にする → ✕
やりたいことの真逆です。全ユーザーが全員の財務レコードを見られるようになるだけでなく、編集までできてしまいます。データプライバシー要件を真っ正面から破ります。
B. 組織の共有設定を「非公開」にする → ⭕ 正解
非公開にすると、ユーザーは自分が所有するレコード(と、別途共有されたもの)だけを見る状態になります。 この状態でレポートを実行すれば、**全員が同じレポートを使っても、各自に自分のレコードだけが見えます。**レポートを人数分作る必要も、フィルタを仕込む必要もありません。 公式の推奨手順とも完全に一致します。「既定アクセスレベルを非公開に設定する…その上で共有ルールを使って必要な分を開いていく」。
C. 各ユーザーの所有レコードにフィルタしたレポートを複数作る → ✕
二つの意味でダメです。 第一に、**レポートのフィルタはセキュリティではありません。**レポートの編集権限がある人ならフィルタを外せばよく、オブジェクトタブから直接レコードを見に行くことも、リストビューや検索で見つけることもできます。隠しているつもりで、実際には何も閉じていません。 第二に、**ユーザーの数だけレポートが必要になります。**人が入れ替わるたびにレポートを作り直すことになり、必ず修正漏れが出ます。
⚠️ 付言しておくと、非公開にした上でならレポートに「所有者 = 自分」のフィルタを入れるのは普通にやります。だからフィルタ自体が悪いのではなく、フィルタをアクセス制御の代わりにしてはいけないということです。
D. Apex 共有を使ってレコードを非表示にする → ✕
Apex 共有は、共有を「広げる」ための仕組みです。標準の共有ルールでは表現できない複雑な条件で、特定の人にアクセスを与えるときに使います。 「隠す」用途のものではありません。そもそも、非公開にするだけで済む要件にコードを書くのは本末転倒です。管理者試験では、宣言的設定で済むならそちらを選ぶのが原則です。
管理者としての対処手順
- [設定]→[共有設定]を開く
- [組織の共有設定]で対象の財務オブジェクトを探し、既定のアクセス権を「非公開」に変更する
- [階層を使用してアクセス権を付与]のチェックを確認する(これがオンなら上司には見える)
- 例外的に共有が必要なケース(経理チームなど)は、共有ルールで必要なグループにだけ開ける
- 一般ユーザーでログインしてレポートを実行し、自分のレコードしか出ないことを検証する
⚠️ 共有設定を絞っても、**「すべてのデータの参照」「すべて表示」権限を持つユーザーには全部見えます。**これらの権限は共有設定を上書きするからです。プロファイルと権限セット側も必ず確認してください。
あわせて覚えておきたいポイント
- 共有の定石の順序は、組織の共有設定で閉める → ロール階層 → 共有ルール → 手動共有です。順番を覚えておくだけで多くの問題が解けます。
- プロファイル・権限セットは「何ができるか」を、共有設定は「どのレコードに対してか」を決めます。両方揃って初めてアクセスが決まります。
- **レポートやダッシュボードにセキュリティを背負わせてはいけません。**これは試験で繰り返し問われる考え方です。
出典(Salesforce公式)
- Control Who Sees What: Record-Level Security(Trailhead) — 決定的根拠:「組織の共有設定は、ユーザーが所有していないレコードへの基本アクセスレベルを指定する。この設定は最も制限されたユーザーが持つべきアクセスを表すものであるべきだ。まず組織の共有設定でデータを閉じ、その上でロール階層・共有ルール・手動共有などで必要な人に開いていく」
- Organization-Wide Sharing Defaults — 「既定のアクセスレベルを非公開に設定する…その上で、必要に応じて共有ルールでアクセスを開いていく」
- Sharing and Record Access Features — ロール階層と共有ルールは、組織の共有設定で閉じたアクセスを拡張するための機能であること
- 「View All」と「Modify All」権限 — 「これらの権限は共有ルールと設定を無視する」(共有設定を絞っても例外があることの根拠)