SlideShare a Scribd company logo
2020 07-22 fireside chat record ownership deep dive(kor)
2020 07-22 fireside chat record ownership deep dive(kor)
2020 07-22 fireside chat record ownership deep dive(kor)
Jihun Jung
Agenda
● Welcome / Introduction
○ Say Hello, Thank you
● Record Ownership Deep Dive
○ Sharing Rows and Hierarchy-based Inheritance
○ Ownership-based Sharing Rules
○ Record Ownership and Data Security
○ Sharing Performance
● Wrap up
○ Session feedback
○ Take a Capture :)
Past meeting
● 4. 04 The impact COVID 19 has had on you
● 4. 11 Ask Salesforce Certification Anything!
● 4. 18 Fireside chat (Tip & Resource)
● 4. 25 Certification story contest
● 5. 02 Lightning Flow
● 5. 09 Ask an Expert Online
● 5. 27 Virtual Dreamin’
● 6. 10 Dynamic Pages
● 6. 24 Implicit Sharing
● 7. 08 Sharing Architecture Overview
● 7. 15 TDX20 Global Gathering
Record Ownership Deep Dive
⚫ 레코드 오너쉽이란
⚫ 레코드 소유권, 역할 계층 내 권한 상속
⚫ 레코드 소유권 기반 공유 규칙
⚫ 레코드 소유권과 데이터 보안
⚫ 공유 퍼포먼스
• 레코드 오너쉽이란 데이터의 관리 업무를 지정하고 소유권에 따른 데이터 공유 기능
• 사례
▪ 데이터 관리 전담을 위한 소유권 부여
▪ 소유자가 공유권한을 특정 유저에게 부여, 예상 외 협업에 대응
▪ 팀, 관리자, 제품 담당자 등 구조화 된 협업
• 레코드 오너쉽의 공유 작동 원리
▪ 오너 필드에 의한 접근권한 부여
▪ 오브젝트 공유 테이블(Object Share Table) 조인에 따른 접근권한 부여
▪ 그룹 구성원 테이블(Group Membership Table) 조인에 따른 접근권한 부여
Record Ownership
오너의 레코드 접근 권한 획득 순서
1. 레코드 생성 시 Owner 필드에 UserId 지정
2. 오브젝트 공유 테이블에 공유 사유 :Owner로 접근 권한 기록
3. 레코드 접근 시 공유 테이블과 UserId 비교하여 권한 획득
Sharing Rows and Hierarchy-based Inheritance
오브젝트 공유 테이블 구성
• Id : 레코드 공유 오브젝트의 레코드Id
• ParentId : 공유 대상 레코드Id
• UserOrGroupId : 권한 부여 받은 그룹 또는 사용자 Id
• AccessLevel : 부여 받은 접근 권한
• RowCause : 권한 부여 사유
Sharing Rows and Hierarchy-based Inheritance
사용자가 레코드에 접근하려 할 때 시스템이 권한을 체크하는 방법을 순차적으로 설명하면
아래와 같음(실제 접근 시 아래의 절차를 직접 수행하지 않음, 이미 공유계산 된 결과에 따른 접근)
1. 프로필, 퍼미션셋 OWD의 오브젝트 접근 권한 확인
2. 오브젝트 공유 테이블 내 사용자 Id 존재 확인
3. 그룹 구성원 테이블을 조회하여 속한 모든 그룹Id를 취합
4. 오브젝트 공유 테이블 내 그룹Id 중 3에서 취합한 Id와 일치하는 레코드 존재 확인
5. 1, 2, 4에서 확인 한 접근 권한 중 가장 제한적인 접근 권한을 부여
프로필에서 CRED(Create, Read, Edit, Delete)권한이 있으나 오브젝트 공유 테이블을 통해 Read 권한만
존재하는 경우 Read 권한만 부여
Sharing Rows and Hierarchy-based Inheritance
간략하게 표현한 역할 계측 구성도의 그룹 구성원 테이블 예
이해를 위한 도식으로 실제와 상이 함
Sharing Rows and Hierarchy-based Inheritance
하위 역할의 사용자가 오너 인 경우 상위 역할의 사용자가 볼 수 있는 이유는
그룹 구성원 테이블의 속해 있기 때문
Sharing Rows and Hierarchy-based Inheritance
오너십 기반의 공유 규칙의 종류
• 특정 역할 사용자의 소유 레코드 → 특정 역할 사용자에게 공유
• 특정 역할 및 그 하위 역할 사용자의 소유 레코드 → 특정 역할 및 그 하위 역할 사용자에게 공유
• 특정 역할 및 그 하위 역할 사용자의 소유 레코드 → 특정 역할 사용자에게 공유
• 특정 역할 및 그 하위 역할 사용자의 소유 레코드 → 특정 역할 및 그 하위 역할 사용자에게 공유
• 공개 그룹 관련 공유
• 관리자(Manager) 그룹, 관리자 및 하위 사용자 그룹 관련 공유
관리자 그룹 : User의 Manager이거나 그 상위 Manager인 사용자 집합
관리자 및 하위 사용자 그룹 : User의 Manager와 그 User가 Manager인 User의 집합
역할 : Role
역할 및 그 하위 역할 : Role and Subordinates
Ownership-based Sharing Rules
Types in Group object
특정 역할 사용자의 소유 레코드 → 특정 역할 사용자에게 공유
Ownership-based Sharing Rules
특정 역할 및 그 하위 역할 사용자의 소유 레코드 → 특정 역할 및 그 하위 역할 사용자에게 공유
Ownership-based Sharing Rules
특정 역할 및 그 하위 역할 사용자의 소유 레코드 → 특정 역할 사용자에게 공유
Ownership-based Sharing Rules
특정 역할 및 그 하위 역할 사용자의 소유 레코드 → 특정 역할 및 그 하위 역할 사용자에게 공유
Ownership-based Sharing Rules
공개 그룹을 사용한 공유
• 공개그룹 구성원의 소유 레코드를 공유 하거나 공개그룹 구성원만 공유 받음
(Grant Access Using Hierarchies : false)
• 공개그룹 구성원 및 그 상위 역할 사용자가 공유 받음
(Grant Access Using Hierarchies : true)
관리자 그룹 및 관리자 및 하위 사용자 그룹을 사용한 공유
• 직-간접 관리 사용자의 레코드를 공유하거나 공유 받음
User A : (Manager : User B), User B : (Manger : User C)
User A의 관리자 그룹은 User B, User C
• 관리자 및 그 사용자가 관리자인 사용자의 레코드를 공유하거나 공유 받음
User D : (Manager : User B), User E : (Manager : User B)
User A의 관리자 및 하위 사용자 그룹은 User B, User D, User E
Ownership-based Sharing Rules
데이터 공유와 세일즈포스 조직 내 데이터 접근 보안을 위하 오너쉽 관련 공유를 제어하기 위한
방법 예
• OWD를 Private으로 설정하여 접근 제한
• Custom Object를 이용하여 역할 계층 권한 상속 비활성화(예 : 사내 Case 처리 Object와 전담 직원)
• 프로필의 오브젝트 권한을 제한하여 권한 제어(예 : 생성, 읽기 권한만 부여, 공유 규칙 또는 매뉴얼
공유를 통해 수정 담당자 지정)
• 오너쉽을 통해 데이터 접근 제어 요건을 충족 하지 못 할 경우 임의 사용자(Dummy, Admin, I/F)에게
오너쉽을 부여
Ownership Data Skew를 방지하기 위해 해당 사용자는 역할의 최 상단에 위치해야함
Record Ownership and Data Security
보안을 위해 정교한 오너쉽 공유 설정을 구성 할 수 있지만 성능저하가 발생 할 수 있음
• 그룹 구성원 테이블의 갱신작업(Group Mebership Table을 Role과 사용자 수에 비례하여 복잡도가 상승함)
• 데이터 접근 권한 재계산 : 역할 권한 상속 및 오너쉽 기반 공유 재계산
• 오브젝트의 사용자의 소유 레코드가 집중되면 Ownership Data Skew 발생(소유권 분배 또는
Dummy고려)
Sharing Performance
Salesforce Security Guide
• https://developer.salesforce.com/docs/atlas.en-
us.224.0.securityImplGuide.meta/securityImplGuide/salesforce_security_guide.htm
Designing Record Access for Enterprise Scale
• https://developer.salesforce.com/docs/atlas.en-us.draes.meta/draes/draes_preface.htm
Behind the Scenes of Record Ownership in Salesforce
• https://developer.salesforce.com/blogs/engineering/2013/10/behind-the-scenes-of-record-
ownership-in-salesforce.html
Data Security
• https://trailhead.salesforce.com/content/learn/modules/data_security
Sharing Rule Categories
• https://help.salesforce.com/articleView?id=security_sharing_data_set_categories.htm&type=5
Record-Level Access: Under the Hood
• https://developer.salesforce.com/docs/atlas.en-
us.salesforce_record_access_under_the_hood.meta/salesforce_record_access_under_the_hood/uth_g
roups.htm
Source
Wrap up
• Session feedback
• Take a Capture :)
$100 off $200: SFAMERCERTDAYS0520200SP

More Related Content

PDF
2020 07-08 fireside chat sharing architecture kor
Jihun Jung
 
PDF
2020 06-24 fireside chat implicit sharing kor
Jihun Jung
 
PPTX
20120525 active directory가이드
Sukjin Yun
 
PDF
Document file
NAVER Engineering
 
PDF
16 데이터 저장과 사용
운용 최
 
PPTX
REST API 설계
Terry Cho
 
PDF
Clou doc intro_kor_20160524
sang yoo
 
PPTX
Salesforce Flow using development with Gen. AI
Jihun Jung
 
2020 07-08 fireside chat sharing architecture kor
Jihun Jung
 
2020 06-24 fireside chat implicit sharing kor
Jihun Jung
 
20120525 active directory가이드
Sukjin Yun
 
Document file
NAVER Engineering
 
16 데이터 저장과 사용
운용 최
 
REST API 설계
Terry Cho
 
Clou doc intro_kor_20160524
sang yoo
 
Salesforce Flow using development with Gen. AI
Jihun Jung
 

More from Jihun Jung (19)

PPTX
2022-12-02 Trailblazer Winter Coming to the Town.pptx
Jihun Jung
 
PDF
2022-11-08 All About career path in Salesforce Eco System_KR.pdf
Jihun Jung
 
PPTX
2021 10-06 about user experience (ux) designer
Jihun Jung
 
PPTX
2021 09-29 dreamforce 21 success party
Jihun Jung
 
PPTX
2021 09-13 fireside chat
Jihun Jung
 
PDF
2020 07-22 fireside chat : Record Ownership Deep Dive
Jihun Jung
 
PPTX
Bangkok Admin Group TrailheaDX 2020 Global Gathering v2
Jihun Jung
 
PDF
2020 07-08 fireside chat sharing architecture
Jihun Jung
 
PDF
2020 06-24 fireside chat implicit sharing
Jihun Jung
 
PDF
2020 06-10 Fireside Chat : Dynamic Pages
Jihun Jung
 
PDF
2020 05-27 fireside chat virtual dreamin
Jihun Jung
 
PDF
2020 05-02 fireside chat lightning flow
Jihun Jung
 
PDF
Certification story contest
Jihun Jung
 
PDF
Ask salesforcecertanything
Jihun Jung
 
PPTX
20200115 admin group_networking_party_v2
Jihun Jung
 
PPTX
20191211 Admin group Seoul Dreamforce Global Gathering
Jihun Jung
 
PPTX
[Salesforce Community Group] Seoul, KR Admin Group September Meeting
Jihun Jung
 
PPTX
20190719 admin group_meeting
Jihun Jung
 
PPTX
[Salesforce] Seoul Admin group kick-off Meeting
Jihun Jung
 
2022-12-02 Trailblazer Winter Coming to the Town.pptx
Jihun Jung
 
2022-11-08 All About career path in Salesforce Eco System_KR.pdf
Jihun Jung
 
2021 10-06 about user experience (ux) designer
Jihun Jung
 
2021 09-29 dreamforce 21 success party
Jihun Jung
 
2021 09-13 fireside chat
Jihun Jung
 
2020 07-22 fireside chat : Record Ownership Deep Dive
Jihun Jung
 
Bangkok Admin Group TrailheaDX 2020 Global Gathering v2
Jihun Jung
 
2020 07-08 fireside chat sharing architecture
Jihun Jung
 
2020 06-24 fireside chat implicit sharing
Jihun Jung
 
2020 06-10 Fireside Chat : Dynamic Pages
Jihun Jung
 
2020 05-27 fireside chat virtual dreamin
Jihun Jung
 
2020 05-02 fireside chat lightning flow
Jihun Jung
 
Certification story contest
Jihun Jung
 
Ask salesforcecertanything
Jihun Jung
 
20200115 admin group_networking_party_v2
Jihun Jung
 
20191211 Admin group Seoul Dreamforce Global Gathering
Jihun Jung
 
[Salesforce Community Group] Seoul, KR Admin Group September Meeting
Jihun Jung
 
20190719 admin group_meeting
Jihun Jung
 
[Salesforce] Seoul Admin group kick-off Meeting
Jihun Jung
 
Ad

2020 07-22 fireside chat record ownership deep dive(kor)

  • 5. Agenda ● Welcome / Introduction ○ Say Hello, Thank you ● Record Ownership Deep Dive ○ Sharing Rows and Hierarchy-based Inheritance ○ Ownership-based Sharing Rules ○ Record Ownership and Data Security ○ Sharing Performance ● Wrap up ○ Session feedback ○ Take a Capture :)
  • 6. Past meeting ● 4. 04 The impact COVID 19 has had on you ● 4. 11 Ask Salesforce Certification Anything! ● 4. 18 Fireside chat (Tip & Resource) ● 4. 25 Certification story contest ● 5. 02 Lightning Flow ● 5. 09 Ask an Expert Online ● 5. 27 Virtual Dreamin’ ● 6. 10 Dynamic Pages ● 6. 24 Implicit Sharing ● 7. 08 Sharing Architecture Overview ● 7. 15 TDX20 Global Gathering
  • 7. Record Ownership Deep Dive ⚫ 레코드 오너쉽이란 ⚫ 레코드 소유권, 역할 계층 내 권한 상속 ⚫ 레코드 소유권 기반 공유 규칙 ⚫ 레코드 소유권과 데이터 보안 ⚫ 공유 퍼포먼스
  • 8. • 레코드 오너쉽이란 데이터의 관리 업무를 지정하고 소유권에 따른 데이터 공유 기능 • 사례 ▪ 데이터 관리 전담을 위한 소유권 부여 ▪ 소유자가 공유권한을 특정 유저에게 부여, 예상 외 협업에 대응 ▪ 팀, 관리자, 제품 담당자 등 구조화 된 협업 • 레코드 오너쉽의 공유 작동 원리 ▪ 오너 필드에 의한 접근권한 부여 ▪ 오브젝트 공유 테이블(Object Share Table) 조인에 따른 접근권한 부여 ▪ 그룹 구성원 테이블(Group Membership Table) 조인에 따른 접근권한 부여 Record Ownership
  • 9. 오너의 레코드 접근 권한 획득 순서 1. 레코드 생성 시 Owner 필드에 UserId 지정 2. 오브젝트 공유 테이블에 공유 사유 :Owner로 접근 권한 기록 3. 레코드 접근 시 공유 테이블과 UserId 비교하여 권한 획득 Sharing Rows and Hierarchy-based Inheritance
  • 10. 오브젝트 공유 테이블 구성 • Id : 레코드 공유 오브젝트의 레코드Id • ParentId : 공유 대상 레코드Id • UserOrGroupId : 권한 부여 받은 그룹 또는 사용자 Id • AccessLevel : 부여 받은 접근 권한 • RowCause : 권한 부여 사유 Sharing Rows and Hierarchy-based Inheritance
  • 11. 사용자가 레코드에 접근하려 할 때 시스템이 권한을 체크하는 방법을 순차적으로 설명하면 아래와 같음(실제 접근 시 아래의 절차를 직접 수행하지 않음, 이미 공유계산 된 결과에 따른 접근) 1. 프로필, 퍼미션셋 OWD의 오브젝트 접근 권한 확인 2. 오브젝트 공유 테이블 내 사용자 Id 존재 확인 3. 그룹 구성원 테이블을 조회하여 속한 모든 그룹Id를 취합 4. 오브젝트 공유 테이블 내 그룹Id 중 3에서 취합한 Id와 일치하는 레코드 존재 확인 5. 1, 2, 4에서 확인 한 접근 권한 중 가장 제한적인 접근 권한을 부여 프로필에서 CRED(Create, Read, Edit, Delete)권한이 있으나 오브젝트 공유 테이블을 통해 Read 권한만 존재하는 경우 Read 권한만 부여 Sharing Rows and Hierarchy-based Inheritance
  • 12. 간략하게 표현한 역할 계측 구성도의 그룹 구성원 테이블 예 이해를 위한 도식으로 실제와 상이 함 Sharing Rows and Hierarchy-based Inheritance
  • 13. 하위 역할의 사용자가 오너 인 경우 상위 역할의 사용자가 볼 수 있는 이유는 그룹 구성원 테이블의 속해 있기 때문 Sharing Rows and Hierarchy-based Inheritance
  • 14. 오너십 기반의 공유 규칙의 종류 • 특정 역할 사용자의 소유 레코드 → 특정 역할 사용자에게 공유 • 특정 역할 및 그 하위 역할 사용자의 소유 레코드 → 특정 역할 및 그 하위 역할 사용자에게 공유 • 특정 역할 및 그 하위 역할 사용자의 소유 레코드 → 특정 역할 사용자에게 공유 • 특정 역할 및 그 하위 역할 사용자의 소유 레코드 → 특정 역할 및 그 하위 역할 사용자에게 공유 • 공개 그룹 관련 공유 • 관리자(Manager) 그룹, 관리자 및 하위 사용자 그룹 관련 공유 관리자 그룹 : User의 Manager이거나 그 상위 Manager인 사용자 집합 관리자 및 하위 사용자 그룹 : User의 Manager와 그 User가 Manager인 User의 집합 역할 : Role 역할 및 그 하위 역할 : Role and Subordinates Ownership-based Sharing Rules Types in Group object
  • 15. 특정 역할 사용자의 소유 레코드 → 특정 역할 사용자에게 공유 Ownership-based Sharing Rules
  • 16. 특정 역할 및 그 하위 역할 사용자의 소유 레코드 → 특정 역할 및 그 하위 역할 사용자에게 공유 Ownership-based Sharing Rules
  • 17. 특정 역할 및 그 하위 역할 사용자의 소유 레코드 → 특정 역할 사용자에게 공유 Ownership-based Sharing Rules
  • 18. 특정 역할 및 그 하위 역할 사용자의 소유 레코드 → 특정 역할 및 그 하위 역할 사용자에게 공유 Ownership-based Sharing Rules
  • 19. 공개 그룹을 사용한 공유 • 공개그룹 구성원의 소유 레코드를 공유 하거나 공개그룹 구성원만 공유 받음 (Grant Access Using Hierarchies : false) • 공개그룹 구성원 및 그 상위 역할 사용자가 공유 받음 (Grant Access Using Hierarchies : true) 관리자 그룹 및 관리자 및 하위 사용자 그룹을 사용한 공유 • 직-간접 관리 사용자의 레코드를 공유하거나 공유 받음 User A : (Manager : User B), User B : (Manger : User C) User A의 관리자 그룹은 User B, User C • 관리자 및 그 사용자가 관리자인 사용자의 레코드를 공유하거나 공유 받음 User D : (Manager : User B), User E : (Manager : User B) User A의 관리자 및 하위 사용자 그룹은 User B, User D, User E Ownership-based Sharing Rules
  • 20. 데이터 공유와 세일즈포스 조직 내 데이터 접근 보안을 위하 오너쉽 관련 공유를 제어하기 위한 방법 예 • OWD를 Private으로 설정하여 접근 제한 • Custom Object를 이용하여 역할 계층 권한 상속 비활성화(예 : 사내 Case 처리 Object와 전담 직원) • 프로필의 오브젝트 권한을 제한하여 권한 제어(예 : 생성, 읽기 권한만 부여, 공유 규칙 또는 매뉴얼 공유를 통해 수정 담당자 지정) • 오너쉽을 통해 데이터 접근 제어 요건을 충족 하지 못 할 경우 임의 사용자(Dummy, Admin, I/F)에게 오너쉽을 부여 Ownership Data Skew를 방지하기 위해 해당 사용자는 역할의 최 상단에 위치해야함 Record Ownership and Data Security
  • 21. 보안을 위해 정교한 오너쉽 공유 설정을 구성 할 수 있지만 성능저하가 발생 할 수 있음 • 그룹 구성원 테이블의 갱신작업(Group Mebership Table을 Role과 사용자 수에 비례하여 복잡도가 상승함) • 데이터 접근 권한 재계산 : 역할 권한 상속 및 오너쉽 기반 공유 재계산 • 오브젝트의 사용자의 소유 레코드가 집중되면 Ownership Data Skew 발생(소유권 분배 또는 Dummy고려) Sharing Performance
  • 22. Salesforce Security Guide • https://developer.salesforce.com/docs/atlas.en- us.224.0.securityImplGuide.meta/securityImplGuide/salesforce_security_guide.htm Designing Record Access for Enterprise Scale • https://developer.salesforce.com/docs/atlas.en-us.draes.meta/draes/draes_preface.htm Behind the Scenes of Record Ownership in Salesforce • https://developer.salesforce.com/blogs/engineering/2013/10/behind-the-scenes-of-record- ownership-in-salesforce.html Data Security • https://trailhead.salesforce.com/content/learn/modules/data_security Sharing Rule Categories • https://help.salesforce.com/articleView?id=security_sharing_data_set_categories.htm&type=5 Record-Level Access: Under the Hood • https://developer.salesforce.com/docs/atlas.en- us.salesforce_record_access_under_the_hood.meta/salesforce_record_access_under_the_hood/uth_g roups.htm Source
  • 23. Wrap up • Session feedback • Take a Capture :)
  • 24. $100 off $200: SFAMERCERTDAYS0520200SP