Salesforceの共有ルールとロール階層の違い
ロール階層は組織図に沿って上位へ自動的にアクセスを付与し、共有ルールは条件や所有者をもとに横方向へアクセスを拡張します。それぞれの使い分けを例とともに解説します。
ロール階層と共有ルールは、管理者が最も頻繁に手を伸ばす2つの仕組みであり、最も混同されやすい2つでもあります。どちらもレコードへのアクセスを広げるものですが、その方向も理由も異なります。この区別を正しく理解できるかどうかが、すっきりした共有モデルと、重なり合うルールが絡まり合った状態とを分ける分かれ目になります。
一行でわかる違い
- ロール階層 — 自動的かつ縦方向にアクセスを付与します。組織図でレコード所有者より上位にいる人は、所有者のアクセスを継承します。
- 共有ルール — 意図的かつ横方向にアクセスを付与します。所有者や項目条件をもとに、階層では決してつながらない同僚・他チーム・グループへアクセスを広げます。
どちらも組織の共有設定(OWD)の上に乗っており、アクセスを開放することしかできず、制限することはできません。(全体の重なり方は誰がレコードを見られるかを参照してください。)
ロール階層: アクセスは上へ転がり上がる
オブジェクトに対して**階層を使用したアクセス権付与(Grant Access Using Hierarchies)**が有効になっていると、管理者は、下位のユーザーが所有する(または下位のユーザーに共有された)レコードへのアクセスを自動的に継承します。ルールも、レコードごとの設定も不要です。
例。 商談(Opportunity)のOWDが非公開だとします。担当者(rep)がある取引(deal)を所有しています。その担当者の管理者、そしてさらにその上のVPは、階層上で担当者より上位にいるため、その取引を自動的に見ることができます。これはロール階層が本来の役割を果たしている状態です。
これは管理者が自チームを見るという可視性に最適ですが、同時に「なぜこの人がこれを見られるの?」という驚きの最も一般的な発生源でもあります。誰もレコードごとに設定していないからです。
共有ルール: アクセスは横へ開く
共有ルールは、組織図が引き離しているユーザーに対して、階層を横切ってアクセスを拡張します。2種類あります。
- 所有者ベース — あるグループ(ロール、公開グループ、テリトリー)が所有するレコードを、別のグループに共有します。
- 条件ベース — 項目値に一致するレコード(例:
Region = EMEA)を、グループ・ロール・テリトリーに共有します。
例。 EMEAとAPACの営業は階層上の別々のブランチにあるため、互いの取引は見えません。ここで条件ベースのルール(Region = EMEA → APAC Leadershipグループに参照(Read)を共有)を作れば、階層に一切手を加えることなく、まさにそのブランチ横断のアクセスだけを開放できます。
どちらを使うべきか
| ニーズ | 使うもの |
|---|---|
| 管理者が自チームのレコードを見る | ロール階層 |
| アクセスがレポートラインに自動的に従う | ロール階層 |
| 2つのピアチームが互いのレコードを見る必要がある | 共有ルール(所有者ベース) |
| 項目条件(地域、種別、フェーズ)に一致するレコードを共有する | 共有ルール(条件ベース) |
| 公開グループやテリトリーと共有する | 共有ルール |
| 単一レコードへの一回限りのアクセス | 手動共有(どちらでもない) |
両者は積み重なる — そこが落とし穴
アクセスは加算的で、最も緩い設定が勝つため、ロール階層と共有ルールは組み合わさります。あるユーザーが、1つのレコードへのアクセスを階層経由でかつ同時に2つの共有ルール経由で得る、ということが起こり得ます。どれも他を上書きしません。どれか1つでも該当すれば十分です。
過剰に広い共有が忍び寄ってくるのも、これが理由です。各ルールは単体では妥当に見えますが、ユーザーが実際に見えるのは、階層+ルール+手動共有を合わせた和集合です。そして、その全体像を頭の中に保持している人は誰もいません。
どちらも制限はしない — 設計上そうなっている
アクセスを減らす必要がある場合、共有ルールもロール階層も役に立ちません。OWDを厳しくするか、制限ルールを使います。共有ルールを追加しても、できるのはアクセスをさらに開放することだけです。
合成された効果を見る
難しいのは、どちらか一方の仕組みではなく、その合計です。なぜユーザーがあるレコードを見られるのかを知るには、階層と、適用されるすべての共有ルールと、手動共有をまとめて評価しなければなりません。
AgentForceAccessは、その和集合をあなたに代わって計算します。なぜそのユーザーがそのレコードを見られるのかを尋ねれば、それがロール階層によるものか、特定の共有ルールによるものか、あるいはその両方によるものかを、根拠となった仕組みを示しながら、平易な言葉で教えてくれます。
よくある質問
一文で言うと、本質的な違いは何ですか?
ロール階層はレポートライン(指揮系統)に沿って上方向へ自動的にアクセスを開放し、共有ルールは階層では決してつながらないユーザーに対して、意図的に横方向へアクセスを開放します。
両方が同じレコードへのアクセスを付与し得る場合、どちらが優先されますか?
問題になりません。Salesforceのアクセスは加算的で、最も緩い設定が勝ちます。ロール階層と共有ルールのどちらか一方がアクセスを付与すれば、ユーザーはそのアクセスを得ます。両方が「一致」する必要は決してありません。
共有ルールでアクセスを取り上げることはできますか?
いいえ。共有ルールもロール階層も、組織の共有設定(OWD)より上にアクセスを拡張することしかできません。アクセスを減らすには、OWDを変更するか制限ルールを使います。共有ルールでは行えません。
ロール階層がしっかり作り込まれていれば、共有ルールは不要ですか?
たいていは必要です。階層が表現できるのは、管理者が部下のレコードを見るという縦方向のアクセスだけです。2つのピアチームや、別ブランチのロールが互いのレコードを見る必要が生じた瞬間、それを表現できるのは共有ルールだけです。
あなたの組織で試してみる
AgentForceAccessは、あらゆるユーザーがあらゆるレコードやファイルを見られる理由を、Salesforceのすべての共有の仕組みを横断して、わかりやすい言葉で説明します。
先行アクセスを申し込む