Microsoft Dataverse 데이터베이스가 있는 환경의 사용자는 사용자 소유 레코드에 대한 액세스 권한을 부여하여 다른 사용자와 공동 작업할 수 있습니다. 사용자는 다른 사용자 또는 팀과 레코드를 공유하거나 다른 사용자 또는 팀에 레코드를 재할당할 수 있습니다.
이 레코드 수준 협업을 관리하고 공유 레코드에 대한 사용자 액세스를 제공하기 위해 모든 레코드 공유 및 해당 권한은 PrincipalObjectAccess(POA) 테이블에 저장됩니다. 사용자가 소유하지 않거나 보안 역할에 적절한 권한이 없는 레코드에 액세스하려고 할 때마다 시스템은 POA 테이블을 확인하여 사용자 액세스를 승인합니다.
POA 소스
다음 주제에서는 레코드 공유를 활성화하므로 POA 레코드를 생성하는 설정 또는 사용법에 대해 간략하게 설명합니다. 과도하게 공유하고 POA 스토리지가 증가하는 것을 방지하려면 설정을 적절하게 검토하고 업데이트해야 합니다.
다시 할당된 엔터티를 원래 담당자와 공유
기본적으로 다시 할당된 레코드를 원래 담당자와 공유할지 여부 설정은 아니요입니다. 이는 레코드 소유권이 다른 사용자에게 재할당되면 레코드의 원래 담당자가 더 이상 해당 레코드에 액세스할 수 없는 경우입니다. 이 설정을 예로 설정하면 사용자가 다른 사용자나 팀에 레코드를 할당할 때마다 POA 테이블에 레코드가 생성됩니다. 원래 소유자는 공유 대상으로 자동 추가됩니다.
액세스 팀
레코드 협업에 액세스 팀을 사용하는 경우 액세스 팀에 사용자가 추가될 때마다 POA 테이블에 레코드가 생성됩니다. 액세스 팀에는 다음과 같은 두 가지 유형이 있습니다.
시스템 관리형: 템플릿을 통해 생성되며 사용자가 회원 목록을 쉽게 관리할 수 있도록 양식에 포함됩니다. 시스템은 공유된 레코드에 대한 액세스 팀을 자동으로 생성합니다. 예를 들어, 계정 #1에는 계정 #2와 다른 액세스 팀이 있습니다.
수동으로 추가됨: 팀의 관리자/담당자가 팀 구성원 목록을 관리하는 개별 액세스 팀입니다.
직접 공유
- 사용자가 다른 사용자와 명시적으로 레코드를 공유하면 POA 테이블에 레코드가 생성됩니다.
간접 공유
사용자가 팀과 레코드를 공유하면 팀의 모든 구성원이 간접적으로 공유됩니다.
간접 공유는 연속 공유 관계가 있는 레코드나 상위/하위 관계가 있는 테이블에서도 발생합니다. 상위 레코드가 사용자 또는 팀과 공유되면 공유 대상 사용자 또는 팀은 모든 계단식 또는 하위 레코드에 액세스할 수 있습니다. 하위 레코드에 액세스하기 위한 이러한 모든 권한은 POA 테이블에 생성됩니다.
테이블 관계의 예
테이블은 다른 테이블과 함께 관계를 갖도록 설정할 수 있습니다(예: 계정에서 서비스케이스). 기본적으로 상위 변경 옵션의 관계는 모두 계단식로 설정됩니다. 모든 관련 하위 레코드는 상위 레코드의 담당자와 공유됩니다.
예: 사용자 #1은 계정 #1을 담당합니다. 사용자 #1은 계정 #1을 사용자 #2와 공유합니다. 사용자 #2는 계정 #1 아래에 서비스케이스 #1을 만듭니다. 즉시 사용 가능한 상위 변경 옵션을 사용하여 사용자 #1은 서비스케이스 #1에 액세스할 수 있습니다. 이러한 모든 사용자 권한은 POA 테이블에 캡처됩니다.
원본 공유
RetrieveAccessOrigin API를 사용하여 특정 테이블에 대한 사용자 또는 팀의 액세스가 어디에서 오는지 확인할 수 있습니다. API는 요청에 objectId, logicalName 및 principalId가 필요하며 응답은 테이블에 대한 액세스 권한을 얻은 위치를 설명하는 문자열입니다.
POA 테이블 증가 관리
- 비즈니스 요구 사항을 평가하고 필요한 경우 재할당된 레코드를 원래 담당자와 공유할지 여부 설정을 켭니다. 이것은 시스템 전체의 설정이라는 점에 유의하십시오. 설정하면 모든 레코드에 설정이 적용됩니다.
- 공유한 다른 레코드에서 사용자 목록이 동일하지 않은 경우 협업을 위해 사용자와 공유합니다.
- 동일한 사용자 목록과 레코드를 자주 공유하거나 팀과 레코드를 공유하는 경우 팀을 레코드 담당자로 사용하십시오.
- 사업부 구조가 복잡하고 공유를 자주 사용하는 경우:
- 필요한 경우에만 공유하십시오.
- 사업부 수를 최소화하십시오.
- 사용자가 적절한 사업부에 배치되었는지 확인합니다.
- 다른 사업부의 사용자가 레코드에 액세스할 수 있도록 팀에 공유합니다.
- 여러 액세스 팀이 레코드에 액세스할 수 있는 경우(예: 레코드를 읽을 수만 있는 영업 담당자 팀과 전체 읽기 및 쓰기 액세스 권한이 있는 다른 영업 관리자 팀) 영업 담당자 및 영업 관리자에 대해 서로 다른 역할 기반 양식을 사용하는 것이 좋습니다.
- 액세스 팀 구성원의 수명 주기를 관리합니다. 협업에 더 이상 필요하지 않은 사용자를 제거합니다.
- 협업이 끝나면 모든 액세스 팀 구성원을 제거합니다.
POA 레코드 삭제
POA 테이블은 사용자 또는 팀이 각 레코드에 적절하게 액세스할 수 있도록 시스템에서 관리합니다. 이 테이블에 대한 직접 삭제는 조직에 대해 정의된 보안 모델을 깨뜨릴 수 있으므로 지원되지 않습니다. POA 테이블을 정리하는 올바른 방법은 보안 모델을 조정하고 이전에 부여된 액세스 권한을 취소하는 것입니다.
문제 해결 가이드
테이블 관계의 계단식 구성이 재상위 또는 공유에서 계단식 없음으로 변경된 경우 이 문서를 사용하여 상속된 액세스를 정리하세요. 불필요한 POA 레코드가 제거됩니다. 추가 정보: 상속된 액세스 권한을 정리하는 방법.
상속된 액세스 권한 정리는 계단식 동작이 계단식 없음으로 변경된 후 남아 있는 레거시 상속된 액세스 권한을 정리하는 시스템 작업입니다. 추가 정보: 상속된 액세스 권한 정리
POA로 인해 사용자 액세스 권한이 부여되었는지 알아보려면 사용자에게 액세스 권한이 있는 이유 확인을 참조하세요.