Salesforce 프로파일 vs 권한 세트 vs 공유 규칙
프로파일과 권한 세트는 오브젝트와 필드 접근을 제어하고, 공유 규칙은 어떤 레코드를 볼지 제어합니다. 두 단계 검사 모델이 사용자가 실제로 할 수 있는 일을 결정하는 방식.
“프로파일 vs 권한 세트 vs 공유 규칙”은 사람들을 혼란스럽게 합니다. 이 셋은 서로 대안이 아니라 서로 다른 질문에 답하며 함께 작동하기 때문입니다. 프로파일과 권한 세트는 오브젝트에 무엇을 할 수 있는지를 결정하고, 공유 규칙은 어떤 레코드에 그 작업을 할 수 있는지를 결정합니다. 이 둘이 어떻게 결합되는지 살펴봅시다.
두 단계 검사 모델
Salesforce에서 모든 레코드 접근은 두 가지 독립적인 검사를 거칩니다.
- 오브젝트 및 필드 검사 — 프로파일과 권한 세트에서: 사용자가 오브젝트에 대한 CRUD를 갖고 있고, 해당 필드에 대한 필드 수준 보안을 갖고 있는가?
- 레코드 검사 — 공유 모델에서: 조직 전체 기본값(OWD), 역할 계층, 또는 공유 규칙이 이 특정 레코드를 허용하는가?
오브젝트 권한은 게이트입니다. 공유는 어떤 레코드가 그 게이트를 통과할지 결정합니다. 둘 다 통과해야 합니다.
이것이 레코드 접근 모델 전체의 토대입니다.
프로파일과 권한 세트: “무엇을 할 수 있는가”
이들은 오브젝트 수준 접근과 그 이상을 제어합니다.
- 오브젝트별 CRUD (Read / Create / Edit / Delete).
- 필드 수준 보안 — 어떤 필드가 보이고 편집 가능한지.
- 시스템 권한, 앱 및 탭 가시성, 그리고 접근 제한을 우회하는 View All / Modify All.
프로파일 vs 권한 세트
- 사용자는 정확히 하나의 프로파일을 갖습니다 — 역사적으로 권한의 기준선이었습니다.
- 사용자는 그 위에 여러 권한 세트(및 권한 세트 그룹)를 겹쳐 가질 수 있습니다.
최신의 권장 접근 방식은 권한 세트 중심입니다. 프로파일을 최소로 유지하고 권한 세트를 통해 접근을 부여하는데, 이는 난립하는 프로파일보다 할당하고 재사용하고 감사하기가 더 쉽기 때문입니다. (반면 역할은 공유 계층을 구동합니다 — 프로파일과는 별개의 축입니다.)
공유 규칙: “어떤 레코드인가”
공유 규칙은 오브젝트나 필드 접근에는 전혀 손대지 않습니다. 조직 전체 기본값 위에서 소유권이나 기준에 따라 레코드 수준 접근만 넓힐 뿐입니다. 공유 규칙이 계층과 어떻게 연관되는지는 공유 규칙 vs 역할 계층을 참고하세요.
결정적으로, 공유 규칙은 누락된 오브젝트 권한을 구제할 수 없습니다. Opportunities에 대한 Read 권한이 없다면, 아무리 많은 공유 규칙이 그 사용자를 가리켜도 어떤 opportunity도 볼 수 없습니다.
권한이 공유를 덮어쓰는 지점
이 계층들이 교차하는 한 곳이 있습니다. View All과 Modify All(오브젝트 수준), 그리고 View All Data / Modify All Data(시스템 전역)입니다. 이들은 공유 모델 전체를 우회합니다 — 이 권한을 가진 사용자는 OWD, 계층, 규칙과 무관하게 모든 레코드를 봅니다. 너무나 강력하기 때문에, 접근이 잘못된 것처럼 보일 때 가장 먼저 확인해야 할 대상입니다. View All / Modify All — 주의해야 할 우회를 참고하세요.
종합하기
| 질문 | 답하는 주체 |
|---|---|
| 사용자가 이 오브젝트를 열 수 있는가? | 프로파일 / 권한 세트 (CRUD) |
| 이 필드를 볼 수 있는가? | 필드 수준 보안 |
| 오브젝트의 어떤 레코드를 볼 수 있는가? | 공유 모델 |
| 공유를 우회할 수 있는가? | View All / Modify All |
사용자가 레코드에 접근할 수 있는지 없는지 이유를 알려면 두 축을 함께 읽어야 합니다 — 오브젝트/필드 권한 그리고 그 레코드에 적용되는 공유입니다.
두 축을 한 번에 읽기
문제는 이 둘이 설정의 서로 다른 곳에 있다는 점입니다 — 프로파일과 권한 세트는 한 곳에, 공유 모델은 다른 곳에 — 그래서 머릿속에서 이 둘을 교차시켜야 합니다. AgentForceAccess는 그 교차를 대신 해줍니다. 사용자가 레코드로 무엇을 할 수 있는지 물어보면 오브젝트 권한, 필드 수준 보안, 그리고 공유 모델을 함께 고려하여, 무엇이 접근을 허용하거나 차단하는지 정확히 근거를 들어 알려줍니다.
자주 묻는 질문
오브젝트 접근과 레코드 접근의 차이는 무엇인가요?
오브젝트 접근(프로파일과 권한 세트에서 옴)은 사용자가 오브젝트를 다룰 수 있는지 자체를 결정합니다 — Read, Create, Edit, Delete — 그리고 어떤 필드를 볼 수 있는지도 정합니다. 레코드 접근(공유 모델)은 그 오브젝트의 어떤 특정 레코드를 볼 수 있는지를 결정합니다. 둘 다 필요합니다.
프로파일과 권한 세트 중 무엇을 써야 하나요?
둘 다 존재하지만, 최신 접근 방식은 권한 세트 중심입니다. 프로파일은 기준선으로 최소화하고 추가 접근은 권한 세트와 권한 세트 그룹을 통해 부여합니다. 사용자는 프로파일 하나를 갖지만 여러 권한 세트를 보유할 수 있어 접근을 할당하고 감사하기가 더 쉬워집니다.
공유 규칙이 오브젝트 접근을 부여하나요?
아닙니다. 공유 규칙은 레코드 수준 접근만 넓힐 뿐입니다. 사용자가 프로파일이나 권한 세트를 통해 오브젝트에 대한 Read 권한이 없다면, 어떤 공유 규칙도 레코드 하나조차 보여주지 못합니다. 오브젝트 권한이 게이트이고, 공유는 어떤 레코드가 그 게이트를 통과할지 결정합니다.
프로파일이 어떻게 공유 규칙을 덮어쓸 수 있나요?
View All과 Modify All을 통해서입니다. 이 권한들은 — 오브젝트 수준에서, 또는 시스템 전역의 "View All Data"/"Modify All Data"로 — 사용자가 공유와 무관하게 모든 레코드를 보거나 편집하게 해줍니다. 이들은 공유 모델 위에 있으므로, 권한이 공유가 제한하려는 것을 덮어쓸 수 있습니다.
직접 내 조직에서 확인해 보세요
AgentForceAccess는 모든 Salesforce 공유 메커니즘에 걸쳐, 어떤 사용자가 왜 특정 레코드나 파일을 볼 수 있는지 쉬운 말로 설명합니다.
얼리 액세스 신청