Dataverse 는 많은 비즈니스 시나리오에 유연한 보안 모델을 제공합니다. 모델은 Dataverse 데이터베이스가 있는 환경에만 적용됩니다. 관리자는 사용자를 관리하고, 보안 구성을 확인하고, 액세스 문제를 해결합니다.
팁
역할 기반 보안
Dataverse 보안 역할 을 사용하여 권한을 그룹화합니다. 보안 역할을 사용자 또는 Dataverse 팀에 직접 할당합니다. 팀 구성원은 팀에 할당된 권한을 받습니다.
보안 권한은 누적됩니다. 사용자는 모든 역할 및 팀 멤버 자격으로 부여된 가장 광범위한 액세스 권한을 받습니다. 예를 들어 한 역할이 모든 연락처 레코드에 대한 조직 수준 읽기 권한을 부여하는 경우 다른 역할은 사용자로부터 특정 연락처를 숨길 수 없습니다.
사업부
Dataverse의 사업부를 이해하려면 다음 비디오를 시청하세요.
사업부는 보안 역할과 함께 사용자의 접근 권한을 결정합니다. 사용자 및 데이터를 관리하는 데 도움이 되는 보안 경계를 정의합니다. 모든 Dataverse 데이터베이스에는 하나의 루트 사업부가 있습니다.
사용자와 데이터를 더 작은 보안 경계로 나누는 자식 사업부를 만듭니다. 환경의 모든 사용자는 사업부에 속합니다. 사업부 구조는 조직 계층 구조와 일치할 수 있지만 그렇게 할 필요는 없습니다.
다음 예제에서는 세 개의 사업부를 사용합니다. Woodgrove는 루트 사업부이며 계층 구조의 맨 위에 남아 있습니다. 부서 A와 B는 자식 사업부입니다. 각 부서의 사용자는 서로 다른 액세스 요구 사항을 가지고 있습니다.
계층적 데이터 액세스 구조
계층 구조를 사용하여 트리와 같은 계층 구조에서 사용자와 데이터를 구분합니다.
각 사용자를 한 사업부에 할당하고 해당 사업부의 보안 역할을 사용자에게 할당합니다. 기본적으로 사용자의 사업부는 사용자가 만든 레코드를 소유합니다. 보안 역할은 사용자가 해당 사업부에서 액세스할 수 있는 레코드를 결정합니다.
이 예제에서 사용자 A는 부서 A에 속하며 부서 A의 보안 역할 Y가 있습니다. 사용자 A는 연락처 #1 및 연락처 #2에 액세스할 수 있습니다. 사용자 B는 부서 B에 속하므로 사용자 B는 부서 A의 연락처에 액세스할 수 없지만 연락처 #3에 액세스할 수 있습니다.
행렬 데이터 액세스 구조(현대화된 사업부)
행렬 구조를 사용하여 트리와 같은 계층 구조에서 데이터를 구성하는 동시에 사용자가 속한 사업부에 관계없이 여러 사업부의 데이터에 액세스할 수 있습니다.
데이터에 액세스해야 하는 각 사업부의 보안 역할을 사용자에게 할당합니다. 사용자가 레코드를 만들 때 레코드를 소유한 사업부를 선택할 수 있습니다.
이 예제에서 사용자 A는 루트 사업부를 비롯한 모든 사업부에 속할 수 있습니다. 부서 A의 보안 역할 Y는 사용자에게 연락처 #1 및 연락처 #2에 대한 액세스 권한을 부여합니다. B부의 보안 역할 Y는 사용자에게 연락처 #3에 대한 액세스 권한을 부여합니다.
행렬 데이터 액세스 구조 사용
노트
이 기능을 사용하도록 설정하기 전에 기능이 새 테이블에 적용되도록 모든 사용자 지정을 게시합니다. 기능을 활성화한 후 미게시 테이블이 작동하지 않으면 Microsoft Dynamics CRM용 OrgDBOrgSettings 도구를 사용하여 RecomputeOwnershipAcrossBusinessUnits를 true로 설정합니다. 이 설정을 사용하면 소유 사업부 열을 설정하고 업데이트할 수 있습니다.
- Power Platform 관리 센터에 Dynamics 365 관리자 또는 Microsoft Power Platform 관리자로 로그인합니다.
- 탐색 창에서 관리를 선택합니다.
- 관리 창에서 환경을 선택한 다음, 환경을 선택합니다.
- 설정>제품>기능을 선택합니다.
- 여러 사업부에 걸친 레코드 소유권을 켭니다.
- 저장을 선택합니다.
기능을 켠 후 사용자에게 보안 역할을 할당할 때 사업부를 선택합니다. 이 옵션을 사용하면 여러 사업부의 역할을 사용자에게 할당할 수 있습니다. 모델 기반 앱을 실행하려면 사용자에게 필요한 사용자 설정 권한이 포함된 자체 사업부의 역할도 필요합니다. 기본 사용자 역할은 사용하도록 설정할 사용자 설정 권한을 보여 줍니다.
보안 역할 중 하나가 레코드 테이블에 대한 읽기 권한을 부여하는 경우 사용자를 모든 사업부의 레코드 소유자로 만들 수 있습니다. 사용자는 레코드 소유 사업부의 보안 역할이 필요하지 않습니다. 자세한 내용은 현대화된 사업부의 레코드 소유권을 참조하세요.
노트
EnableOwnershipAcrossBusinessUnits 설정은 이 기능의 상태를 저장합니다. MICROSOFT DYNAMICS CRM용 OrgDBOrgSettings 도구를 사용하여 설정을 변경할 수도 있습니다.
사업부를 Microsoft Entra 보안 그룹에 연결합니다.
비즈니스 단위를 Microsoft Entra 보안 그룹에 매핑하여 사용자 관리 및 역할 할당을 간소화합니다.
각 사업부에 대해:
- Microsoft Entra 보안 그룹을 만듭니다.
- 보안 그룹에 대한 Dataverse 그룹 팀을 만듭니다.
- Dataverse 그룹 팀에 사업부의 보안 역할을 할당합니다.
- Microsoft Entra 보안 그룹에 사용자를 추가합니다.
사용자가 환경에 처음 액세스하면 Dataverse는 루트 사업부에 사용자를 만듭니다. 사용자 및 Dataverse 그룹 팀은 루트 사업부에 남아 있을 수 있습니다. 할당된 보안 역할은 해당 사업부의 데이터에 대한 액세스 권한을 부여합니다.
행렬 데이터 액세스의 경우 액세스해야 하는 각 사업부의 Microsoft Entra 보안 그룹에 사용자를 추가합니다.
사업부 소유
각 레코드에는 해당 레코드를 소유하는 사업부를 식별하는 소유 사업부 열이 있습니다. 사용자가 레코드를 만들 때 열은 기본적으로 사용자의 사업부로 설정됩니다. 사업부의 레코드 소유권이 켜진 경우에만 값을 변경할 수 있습니다.
노트
소유 사업부를 변경하면 연속적인 변경이 발생할 수 있습니다. 자세한 내용은 .NET SDK를 사용하여 연속 동작 구성을 참조하세요.
사용자가 소유 사업부 열을 설정할 수 있도록 하려면 비즈니스 단위 테이블에 대한 로컬 수준 Append To 권한을 사용자의 보안 역할에 부여합니다.
열을 다음 항목에 추가합니다.
- 양식 본문 또는 헤더입니다.
- 전망.
- 열 매핑입니다. AutoMapEntity를 사용하는 경우 매핑에 열을 포함합니다.
노트
데이터 동기화 작업에 해당 스키마에 소유 사업부 가 포함된 경우 대상 환경에 동일한 값이 포함되지 않으면 외래 키 제약 조건 위반으로 작업이 실패합니다. 원본 스키마에서 열을 제거하거나 원본 값을 대상 환경에 있는 사업부로 변경합니다.
Power BI 같은 외부 리소스에 데이터를 복사할 때는 대상에서 해당 열을 지원하는 경우에만 소유 사업부를 포함하세요.
테이블 및 레코드 소유권
Dataverse는 다음 두 가지 레코드 소유권 유형을 지원합니다.
- 조직 소유: 권한은 모든 레코드에 적용되거나 적용되지 않습니다.
- 사용자 또는 팀 소유: 대부분의 권한은 사용자, 사업부, 부모-자식 사업부 및 조직 액세스 수준을 지원합니다.
테이블을 만들 때 소유권 유형을 선택하면 나중에 변경할 수 없습니다. 예를 들어 연락처 테이블에 대한 사용자 수준 읽기 액세스를 통해 사용자는 자신이 소유한 연락처 레코드만 읽을 수 있습니다.
사용자 A가 부서 A에 속하고 연락처 테이블에 대한 비즈니스 단위 수준 읽기 권한이 있는 경우 사용자 A는 연락처 #1 및 연락처 #2를 읽을 수 있지만 연락처 #3은 읽을 수 없습니다.
보안 역할을 구성할 때 각 권한에 대한 액세스 수준을 선택합니다.
표준 테이블 권한 만들기, 읽기, 쓰기, 삭제, 추가, 추가, 할당 및 공유를 별도로 구성합니다. 권한 아이콘은 부여된 액세스 수준을 표시합니다.
필터링된 테이블 레코드 소유권(미리 보기)
미리 보기 기능은 프로덕션용이 아니며 기능이 제한되었을 수 있습니다. 이런 기능은 공식 릴리스 전에 사용할 수 있으므로 고객이 조기에 액세스하고 피드백을 제공할 수 있습니다.
필터링된 레코드 소유권을 사용하면 관리자가 열 값 필터를 사용하여 Dataverse 레코드에 대한 액세스를 제어할 수 있습니다. 예를 들어 열이 Redmond와 같은 레코드에 City 만 액세스 권한을 부여합니다. 사용자는 보안 역할의 필터와 일치하는 레코드만 만들고, 읽고, 업데이트하고, 삭제할 수 있습니다.
기존 Dataverse 테이블과 달리 필터링된 레코드 소유권이 있는 테이블은 레코드 소유권, 공유 또는 할당을 지원하지 않습니다. 필터 기반 권한은 레코드 액세스를 제어하고 테이블, 열 또는 기타 모델 개체를 제한하지 않고 세분화된 행 수준 액세스를 제공합니다.
노트
필터링된 레코드 소유권을 사용하여 필터 조건을 충족하는 레코드에 행 수준 액세스 권한을 부여합니다. 필터링된 레코드 소유권 테이블과 기존 사용자 소유 또는 조직 소유 테이블에 필터 기반 권한을 적용합니다. 기존 테이블의 경우 이 방법은 기본 소유권 모델을 유지합니다.
현대화된 사업부의 레코드 소유권
현대화된 사업부를 사용하면 사용자는 모든 사업부에서 레코드를 소유할 수 있습니다. 사용자는 레코드 테이블에 대한 읽기 권한을 부여하는 모든 사업부의 보안 역할이 필요합니다. 사용자가 소유한 레코드를 포함하는 모든 사업부의 역할이 필요하지는 않습니다.
프리뷰 기간 동안 프로덕션 환경에서 사업부 간 레코드 소유권을 사용하도록 설정한 경우:
- 조직 설정 편집기를 설치합니다.
-
RecomputeOwnershipAcrossBusinessUnits를
true로 설정합니다. 다시 계산하는 동안 시스템이 잠기며 최대 5분이 걸릴 수 있습니다. 다시 계산한 후 사용자는 각 사업부와 별도의 보안 역할 없이 사업부 간에 레코드를 소유할 수 있습니다. 레코드 소유자는 레코드 소유 사업부 외부의 사용자에게 레코드를 할당할 수도 있습니다. -
AlwaysMoveRecordToOwnerBusinessUnit을
false로 설정합니다. 그러면 소유권이 변경되면 레코드가 원래 소유 사업부에 유지됩니다.
비프로덕션 환경의 경우 AlwaysMoveRecordToOwnerBusinessUnit 을 .로 false설정합니다.
노트
사업부 전체의 레코드 소유권을 끄거나 RecomputeOwnershipAcrossBusinessUnits를 false로 설정하면 소유 사업부 열을 설정하거나 업데이트할 수 없습니다. 또한 Dataverse는 영향을 받는 각 레코드의 소유 사업부를 레코드 소유자의 사업부와 일치하도록 변경합니다.
팀(그룹 팀 포함)
각 팀은 사업부에 속합니다. Dataverse는 모든 사업부에 대한 기본 팀을 자동으로 만들고 멤버 자격을 관리합니다. 기본 팀에는 항상 사업부의 모든 사용자가 포함됩니다. 해당 멤버를 수동으로 추가하거나 제거할 수 없습니다. Dataverse는 사용자를 사업부와 연결하거나 연결 해제할 때 멤버 자격을 업데이트합니다.
Dataverse는 다음 두 가지 유형의 팀을 제공합니다.
- 소유자 팀은 레코드를 소유할 수 있습니다. 모든 팀 구성원은 팀의 레코드에 직접 액세스할 수 있습니다. 사용자는 여러 소유자 팀에 속할 수 있습니다.
- 액세스 팀은 공유 레코드에 대한 액세스를 제공하지만 레코드를 소유하지 않거나 보안 역할을 갖지 않습니다.
레코드 공유
사용자 또는 팀과 개별 레코드를 공유하여 소유권 및 사업부 모델이 다루지 않는 예외를 처리합니다. 역할 기반 액세스보다 덜 효율적으로 수행되고 문제 해결이 더 어려울 수 있으므로 예외에 대해서만 공유를 사용합니다. 팀과 공유하는 것이 각 사용자와 별도로 공유하는 것보다 더 효율적입니다.
액세스 팀 템플릿을 사용하여 액세스 팀을 자동으로 만들고 레코드에 대한 사용 권한을 정의합니다. 템플릿 없이 액세스 팀을 만들고 구성원을 수동으로 관리할 수도 있습니다. 액세스 팀은 레코드를 소유하지 않으며 보안 역할을 가질 수 없습니다. 레코드가 팀과 공유되므로 팀 구성원은 액세스 권한을 받습니다.
Dataverse의 레코드 수준 보안
사용자의 레코드 액세스는 모든 보안 역할, 사업부 멤버 자격, 팀 멤버 자격 및 공유 레코드를 결합합니다. Access는 Dataverse 데이터베이스 내에서 누적됩니다. Dataverse는 각 데이터베이스에 대해 개별적으로 액세스를 추적하고 사용자에게 적절한 Dataverse 라이선스가 있어야 합니다.
Dataverse의 열 수준 보안
레코드 수준 보안이 충분한 제어를 제공하지 않는 경우 열 수준 보안을 사용합니다. 모든 사용자 지정 열 및 대부분의 시스템 열에 사용하도록 설정합니다. PII(개인 식별 정보)를 포함하는 대부분의 시스템 열은 열 수준 보안을 지원합니다. 시스템 열의 메타데이터는 보안을 설정할 수 있는지 여부를 나타냅니다.
각 열에 대해 열 수준 보안을 별도로 사용하도록 설정합니다. 그런 다음 보안이 설정된 열에 만들기, 업데이트 및 읽기 권한을 부여하는 열 보안 프로필을 만듭니다. 사용자 또는 팀에 프로필을 할당합니다.
열 수준 보안은 레코드에 대한 액세스 권한을 부여하지 않습니다. 열 보안 프로필이 보안 열에 대한 액세스 권한을 부여하려면 먼저 사용자가 이미 레코드 액세스 권한이 있어야 합니다. 과도한 사용으로 성능이 저하될 수 있으므로 필요한 경우에만 열 수준 보안을 사용합니다.
여러 환경에서 보안 관리
Dataverse 솔루션을 사용하여 환경 간에 보안 역할 및 열 보안 프로필을 이동합니다. 각 환경에서 사업부와 팀을 개별적으로 만들고 관리합니다. 또한 각 환경의 적절한 보안 구성 요소에 사용자를 할당해야 합니다.
사용자 보안 구성
역할, 팀 및 사업부를 만든 후 각 사용자의 액세스를 구성합니다.
- 사용자를 사업부와 연결합니다. Dataverse는 기본적으로 루트 사업부를 사용하고 사용자를 해당 사업부의 기본 팀에 추가합니다.
- 사용자에게 필요한 보안 역할을 할당합니다.
- 적절한 팀에 사용자를 추가합니다.
- 열 수준 보안을 사용하는 경우 사용자 또는 해당 팀 중 하나에 열 보안 프로필을 할당합니다.
사용자의 효과적인 액세스는 직접 할당된 보안 역할과 팀을 통해 할당된 역할을 결합합니다. Dataverse는 항상 해당 역할에서 가장 광범위한 권한을 부여합니다. 자세한 연습은 환경 보안 구성을 참조하세요.
변경 내용을 배포하기 전에 앱 제작자 및 사용자 권한을 관리하는 관리자와 주요 보안 변경 내용을 조정합니다.