레코드 접근공유 모델Salesforce 관리자

Salesforce에서 누가 레코드를 볼 수 있을까? 접근 권한이 결정되는 원리

Salesforce가 레코드를 볼 수 있는 사람을 결정하는 방식을 실무 관점에서 정리합니다. 조직 전체 기본값, 역할 계층, 공유 규칙, 수동 공유, 팀과 영역까지 다룹니다.

AgentForceAccess 3 분 분량
Salesforce 공유 규칙을 표현한, 빛나는 반투명 레이어가 추상적으로 쌓인 모습

Salesforce 조직을 충분히 오래 운영하다 보면, 누군가 결국 이렇게 묻게 됩니다. “이 사람이 어떻게 저 레코드를 볼 수 있는 거죠?” 솔직한 답은, Salesforce가 레코드 가시성을 한 곳에서 결정하지 않는다는 것입니다. 여러 메커니즘을 서로 위에 쌓아 올린 뒤, 그 모든 것의 합집합을 부여합니다.

이 가이드는 Salesforce가 각 레이어를 평가하는 순서대로 하나씩 살펴봅니다. 그러면 “누가 무엇을 볼 수 있는가”라는 어떤 질문이든 원리부터 따져 추론할 수 있습니다.

모든 것을 설명하는 단 하나의 규칙

Salesforce 공유는 가산적이며 가장 관대한 권한이 이깁니다. 조직 전체 기본값이 정한 기준선에서 출발해, 다른 모든 메커니즘은 그 위에 접근을 더하기만 합니다. 표준 공유 모델에서 접근을 빼앗는 것은 아무것도 없습니다.

그래서 사용자가 왜 레코드를 볼 수 있는지 추적할 때, 허용하는 규칙과 차단하는 규칙을 함께 찾는 일은 결코 없습니다. 당신이 찾는 것은 단 하나의 권한 부여입니다. 하나면 충분하기 때문입니다.

단 하나의 메커니즘이라도 접근을 부여하면, 그 사용자는 접근 권한을 갖습니다. 그것으로 끝입니다.

레이어 1 — 개체 권한은 어떤 레코드인지가 아니라 볼 수 있는지를 결정한다

공유를 따지기도 전에, 사용자는 프로파일이나 권한 집합을 통해 개체 수준의 접근 권한이 있어야 합니다.

사용자에게 Opportunities에 대한 Read 권한이 없다면, 세상의 어떤 공유 규칙도 그에게 기회를 보여주지 못합니다. 개체 권한은 관문이고, 공유 모델은 그 관문을 통과한 뒤에 벌어지는 일입니다.

레이어 2 — 조직 전체 기본값이 하한선을 정한다

조직 전체 기본값(OWD)은 각 개체에 대해 가장 제한적인 기준선을 정의합니다.

  • Private — 레코드 소유자(와 역할 계층상 그보다 위에 있는 사람)만 볼 수 있습니다.
  • Public Read Only — 누구나 볼 수 있지만 편집은 소유자만 가능합니다.
  • Public Read/Write — 누구나 보고 편집할 수 있습니다.

뒤따르는 모든 것은 특정 사람들을 위해 이 하한선 위로 접근을 넓히기 위해 존재합니다.

레이어 3 — 역할 계층은 접근 권한을 위로 끌어올린다

개체에 대해 Grant Access Using Hierarchies가 활성화되어 있으면, 역할 계층상 레코드 소유자보다 위에 있는 사람은 누구나 소유자의 접근 권한을 상속받습니다. 영업 관리자가 아무런 명시적 규칙 없이도 자기 담당자의 거래를 볼 수 있는 이유가 바로 이것이며, 예상치 못한 접근의 가장 흔한 원인이기도 합니다.

레이어 4 — 공유 규칙은 옆으로 접근을 연다

공유 규칙은 계층을 가로질러 동료와 다른 분기로 접근을 확장합니다.

  • 소유권 기반(Ownership-based) — 한 사용자 그룹이 소유한 레코드를 다른 그룹과 공유합니다.
  • 기준 기반(Criteria-based) — 필드 값(예: Region = EMEA)에 일치하는 레코드를 그룹, 역할, 또는 영역과 공유합니다.

둘 다 한 번에 사용자 그룹에 접근을 부여하므로, 지나치게 넓은 기준 기반 규칙은 “너무 많은” 사람이 무언가를 볼 수 있을 때 자주 등장하는 범인입니다.

레이어 5 — 수동 공유와 암시적 공유

  • 수동 공유(Manual sharing) — 레코드의 Share 버튼으로, 특정 사용자나 그룹에게 그 하나의 레코드에 대한 접근을 부여합니다.
  • 암시적 공유(Implicit sharing) — 상위 계정에 대한 접근이 그 하위 케이스와 연락처에 대한 제한적 접근을 의미하는 것과 같은 내장 동작입니다.
  • Apex 관리 공유(Apex managed sharing) — 사용자 정의 코드로 생성되는 프로그래밍 방식의 공유로, 흔히 가장 발견하기 어렵습니다.

레이어 6 — 팀과 영역

  • Account, Opportunity, Case 팀은 명시된 팀 구성원에게 해당 레코드에 대한 접근을 부여합니다.
  • Enterprise Territory Management는 사용자와 레코드가 속한 영역을 기준으로 접근을 부여합니다.

종합하기: 어떤 접근이든 추적하는 방법

“이 사용자가 왜 이 레코드를 볼 수 있는가”에 답하려면, 권한 부여를 찾을 때까지 각 레이어를 점검하세요.

  1. 사용자가 프로파일/권한 집합을 통해 개체 Read(또는 View All) 권한을 갖고 있는가?
  2. 이 개체의 OWD가 이미 public인가?
  3. 역할 계층상 소유자보다 위에 있는가?
  4. 어떤 공유 규칙이 그를 포함하는가?
  5. 수동, 암시적, 또는 Apex 공유가 있는가?
  6. 팀에 속해 있거나, 일치하는 영역에 있는가?

처음으로 “예”가 나오는 곳이 답입니다. 그리고 답이 하나 이상일 수 있다는 점을 기억하세요. 이 추적의 단계별 버전은 사용자가 보면 안 되는 레코드를 본다를 참고하세요. 파일은 레코드 접근을 상속하므로, 누가 파일을 볼 수 있는가도 동일한 모델의 지배를 받습니다.

이것이 바로 AgentForceAccess가 자동화하는 작업입니다. 사용자가 왜 레코드를 볼 수 있는지 평범한 영어로 물어보면, 위의 모든 레이어를 추적하여 접근을 허용하는 정확한 권한 부여를 짚어 줍니다.

자주 묻는 질문

시스템 관리자는 공유 모델을 우회하나요?

네. 시스템 관리자 프로파일에 기본으로 부여되는 "View All Data"와 "Modify All Data" 권한은 조직 전체 기본값, 공유 규칙, 역할 계층을 전부 우회합니다. 개체 수준의 "View All" / "Modify All"은 단일 개체에 대해 동일하게 동작합니다.

두 개의 공유 규칙이 같은 레코드에 적용되면 어느 쪽이 이기나요?

가장 관대한 쪽이 이깁니다. Salesforce 접근 권한은 가산적입니다. 적용 가능한 모든 규칙의 합집합을 부여합니다. 규칙을 추가한다고 접근이 줄어드는 일은 없으며, 오직 넓어지기만 합니다.

관리자는 왜 명시적으로 부여받지 않은 레코드를 볼 수 있나요?

해당 개체에 대해 "Grant Access Using Hierarchies"가 활성화되어 있는 한, 역할 계층은 계층상 자신보다 아래에 있는 사용자가 소유하거나 그들에게 공유된 레코드에 대한 접근을 관리자에게 부여합니다.

개체 권한과 공유 설정은 같은 일을 하나요?

아니요. 개체 권한(프로파일과 권한 집합)은 사용자가 개체에 접근할 수 있는지 여부와 그 개체로 무엇을 할 수 있는지를 결정합니다. 공유 모델은 그 개체의 어떤 특정 레코드를 볼 수 있는지를 결정합니다.

직접 내 조직에서 확인해 보세요

AgentForceAccess는 모든 Salesforce 공유 메커니즘에 걸쳐, 어떤 사용자가 왜 특정 레코드나 파일을 볼 수 있는지 쉬운 말로 설명합니다.

얼리 액세스 신청