Power BI 모델 개체에 대한 액세스 제한

완료됨

데이터 모델러는 Power BI 모델 개체에 대한 사용자 액세스 제한을 고려할 수 있습니다. OLS(개체 수준 보안)는 특정 테이블 및 열과 관련 메타데이터에 대한 액세스를 제한할 수 있습니다. 일반적으로 OLS는 직원 개인 데이터 같은 중요한 데이터를 저장하는 개체를 보호하기 위해 적용합니다.

Power BI에서 OLS를 적용하면 테이블 및 열에 대한 액세스를 제한하고 나아가 메타데이터를 보호할 수도 있습니다. 메타데이터를 보호할 때는 DMV(동적 관리 뷰)를 사용하여 보안 테이블 및 열 관련 정보를 검색할 수 없습니다.

중요

테이블 형식 모델은 큐브 뷰를 사용하여 테이블과 열(및 기타 개체)을 숨길 수 있습니다. 큐브 뷰는 보고서 작성자에게 특정 포커스를 제공하는 데 도움이 되는, 모델 개체의 표시 가능한 하위 집합을 정의합니다. 큐브 뷰의 목적은 모델의 복잡성을 줄여 보고서 작성자가 관심 있는 리소스를 쉽게 찾을 수 있게 하는 것입니다. 그러나 큐브 뷰는 개체를 보호하지 않으므로 보안 기능은 아닙니다. 사용자는 표시되지 않는 테이블 또는 열도 열을 쿼리할 수 있습니다.

Adventure Works 예시를 생각해 보세요. 이 조직에는 DimEmployee라는 데이터 웨어하우스 차원 테이블이 있습니다. 테이블에는 직원 이름, 전화, 이메일 주소 및 급여를 저장하는 열이 포함되어 있습니다. 일반 보고서 소비자는 직원 이름 및 연락처 세부 정보를 볼 수 있지만 급여 값은 볼 수 없어야 합니다. 급여 값은 인사부 선임 직원만 볼 수 있습니다. 따라서 데이터 모델러는 OLS를 사용하여 특정 인사 담당자에게만 급여 열에 대한 액세스 권한을 부여했습니다.

제한된 Salary 열을 포함하는 Employee 테이블의 모델 다이어그램 보기를 보여 주는 스크린샷

OLS는 AAS(Azure Analysis Services) 및 SSAS(SQL Server Analysis Services)에서 상속하는 기능입니다. 이 기능은 Power BI로 마이그레이션된 모델에 대한 이전 버전과의 호환성을 제공하기 위해 Power BI Premium에서 제공됩니다. 바로 이점 때문에 Power BI Desktop에서는 OLS를 완전히 설정할 수 없습니다.

OLS 설정

OLS를 설정하려면 먼저 역할을 만들어야 합니다. RLS를 설정할 때와 동일한 방식으로 Power BI Desktop에서 역할을 만들 수 있습니다. 그런 다음에는 역할에 OLS 규칙을 추가해야 합니다. 이 기능은 Power BI Desktop에서 지원되지 않으므로 다른 접근 방식을 선택해야 합니다.

XMLA(XML for Analysis) 엔드포인트를 사용하여 Power BI Desktop 모델에 OLS 규칙을 추가합니다. XMLA 엔드포인트는 Power BI Premium에서 사용할 수 있으며 Power BI 서비스에서 Analysis Services 엔진에 액세스할 수 있게 합니다. 읽기/쓰기 엔드포인트는 데이터 세트 관리, 애플리케이션 수명 주기 관리와 고급 데이터 모델링 등을 지원합니다. TMSL(Tabular Model Scripting Language) 또는 PowerShell SqlServer 모듈과 같은 스크립트용 XMLA 엔드포인트 지원 API를 사용할 수 있습니다. SSMS 같은 클라이언트 도구를 사용할 수도 있습니다. 모델 만들기, 유지 관리, 관리를 위한 오픈 소스 도구인 테이블 형식 편집기 같은 타사 도구를 선택할 수도 있습니다.

기본적으로 어떤 모델 테이블 및 열도 제한되지 않습니다. 모델 테이블 및 열을 없음이나 읽기로 설정할 수 있습니다. 없음으로 설정하면 역할과 연결된 사용자가 개체에 액세스할 수 없습니다. 읽기로 설정하면 역할과 연결된 사용자가 개체에 액세스할 수 있습니다. 특정 열을 제한하는 경우 테이블이 없음으로 설정되지 않았는지 확인합니다.

OLS 규칙을 추가하면 모델을 Power BI 서비스 게시할 수 있습니다. RLS에 동일한 프로세스를 사용하여 계정 및 보안 그룹을 역할에 매핑합니다.

고려 사항

Power BI 보고서에서는 사용자에게 테이블 또는 열에 액세스할 권한이 없는 경우 오류 메시지가 표시됩니다. 이 메시지는 개체가 존재하지 않는다는 사실을 알립니다.

보고서 시각적 개체가 제한된 열을 쿼리하려고 할 때 Power BI Desktop 오류 메시지를 보여 주는 스크린샷

OLS가 프로젝트에 적합한 솔루션인지 신중하게 고려해야 합니다. 제한된 개체를 쿼리하는 Power BI 보고서를 사용자가 열면 오류 메시지를 착각해 부정적인 경험을 할 수 있습니다. 사용자에게는 보고서가 손상된 것처럼 보입니다. 더 나은 방법은 다양한 보고서 소비자 요구 사항에 대한 별도의 모델 또는 보고서 모음을 만드는 것입니다.

제한

OLS를 구현할 때는 몇 가지 제한 사항을 알고 있어야 합니다.

동일한 역할에서 RLS와 OLS를 모두 사용할 수 없습니다. 동일한 모델에 RLS 및 OLS를 적용해야 한다면 각 형식 전용의 별도의 역할을 만들어야 합니다. 또한 관계 체인이 끊어지게 하는 테이블 수준 보안은 설정할 수 없습니다. 예를 들어 테이블 A와 B 및 B와 C 간에 관계가 있다면 테이블 B를 보호할 수 없습니다. 테이블 B가 보호되는 경우 테이블 A의 쿼리는 테이블 A와 B 및 B와 C 간의 관계를 전송할 수 없습니다. 이 경우에는 테이블 A와 C 간에 별도의 관계를 설정해야 합니다.

이전 단락에 설명된 관계 예제를 보여 주는 다이어그램

그러나 열의 테이블이 보호되지 않는다면 보호되는 열을 참조하는 모델 관계는 정상적으로 작동합니다.

마지막으로, 측정값을 보호할 수는 없지만 보호되는 개체를 참조하는 측정값은 자동으로 제한됩니다.

자세한 내용은 개체 수준 보안을 참조하세요.