다음을 통해 공유


Power BI Report Server의 RLS(행 수준 보안)

Power BI Report Server를 사용하는 RLS(행 수준 보안)를 설정하면 지정된 사용자의 데이터 액세스를 제한할 수 있습니다. 필터는 행 수준에서 데이터 액세스를 제한하고 역할 내에서 필터를 정의할 수 있습니다. Power BI Report Server에서 기본 권한을 사용하는 경우, Power BI 보고서에 대한 게시자 또는 콘텐츠 관리자 권한이 있는 사용자는 해당 보고서의 역할에 멤버를 할당할 수 있습니다.

Power BI Desktop으로 Power BI로 가져온 보고서에 대한 RLS를 구성합니다. SQL Server와 같이 DirectQuery를 사용하는 보고서에서 RLS를 구성할 수도 있습니다. DirectQuery 연결에서 보고서 읽기 사용자에 대한 통합 인증을 사용하는 경우에는 RLS가 준수되지 않는다는 점을 명심하세요. Analysis Services 라이브 연결의 경우 온-프레미스 모델에서 행 수준 보안을 구성합니다. 라이브 연결 데이터 세트에는 보안 옵션이 표시되지 않습니다.

Power BI Desktop의 역할 및 규칙 정의

Power BI Desktop 내에서 역할 및 규칙을 정의할 수 있습니다. 이 편집기를 사용하면 기본 드롭다운 인터페이스와 DAX 인터페이스 사용 간에 전환할 수 있습니다. Power BI에 게시할 때 역할 정의도 게시합니다.

보안 역할을 정의하려면 다음을 수행합니다.

  1. Power BI Desktop 보고서에 데이터를 가져오거나 DirectQuery 연결을 구성합니다.

    참고 항목

    Analysis Services 라이브 연결을 위해 Power BI Desktop 내에서 역할을 정의할 수 없습니다. Analysis Services 모델 내에서 이를 수행해야 합니다.

  2. 모델링 탭에서 역할 관리를 선택합니다.

    역할 관리를 강조 표시하는 모델링 탭의 스크린샷

  3. 역할 관리 창에서 새로 만들기를 선택하여 새 역할을 만듭니다.

    새 역할 만들기 단추를 강조 표시하는 역할 관리 창의 스크린샷.

  4. 역할에서 역할의 이름을 입력하고 Enter 키를 선택합니다.

    역할 이름 바꾸기를 강조 표시하는 역할 관리 창의 스크린샷.

    참고 항목

    쉼표로 역할을 정의할 수 없습니다(예: London,ParisRole).

  5. 테이블 선택에서 행 수준 보안 필터를 적용할 테이블을 선택합니다.

  6. 필터 데이터에서 기본 편집기를 사용하여 역할을 정의합니다. 만든 식은 true 또는 false 값을 반환합니다.

    행 수준 보안을 정의하기 위한 역할 관리 창 기본 편집기의 스크린샷.

    참고 항목

    Power BI에서 지원되는 일부 행 수준 보안 필터는 기본 편집기를 사용하여 정의할 수 없습니다. 제한 사항에는 username() 또는 userprincipalname()과 같은 동적 규칙을 포함하여 DAX만을 사용하여 정의할 수 있는 식이 포함됩니다. 이러한 필터를 사용하여 역할을 정의하려면 DAX 편집기를 사용하도록 전환합니다.

  7. 필요에 따라 DAX 편집기로 전환을 선택하여 DAX 편집기를 사용하도록 전환하여 역할을 정의합니다. DAX 식은 true 또는 false 값을 반환합니다. 예: [Entity ID] = “Value” DAX 편집기는 수식에 대한 자동 완성(intellisense)으로 완성됩니다. 식 상자 위의 확인 표시를 선택하여 식의 유효성을 검사하고 식 상자 위의 X 단추를 선택하여 변경 내용을 되돌릴 수 있습니다.

    예제 DAX 식을 강조 표시하는 역할 관리 창의 스크린샷

    참고 항목

    이 식에 username()을 사용할 수 있습니다. username()은 Power BI Desktop 내에서 도메인\사용자 이름의 형식을 취합니다. Power BI 서비스 및 Power BI Report Server 내에서 사용자의 UPN(사용자 계정 이름) 형식입니다. 또한, 이 식 상자에서는 보통 세미콜론 구분자를 사용하는 로캘(예: 프랑스, 독일)에서도 쉼표를 사용하여 DAX 함수 인수를 구분합니다.

  8. 기본 편집기로 전환을 선택하여 기본 편집기로 다시 전환할 수 있습니다. 가능한 경우 인터페이스를 전환할 때 편집기 인터페이스에서 변경한 모든 내용이 유지됩니다. 기본 편집기에서 정의할 수 없는 역학을 DAX 편집기를 사용하여 정의할 때 기본 편집기로 전환하려고 하면 편집기를 전환하면 일부 정보가 손실될 수 있다는 경고 메시지가 표시됩니다. 이 정보를 유지하려면 취소를 선택하고 DAX 편집기에서만 이 역할을 계속 편집합니다.

    기본 편집기로 전환할 것인지 확인하는 대화 상자의 스크린샷.

    참고 항목

    이 식 상자에서는 보통 세미콜론 구분자를 사용하는 로캘(예: 프랑스, 독일)에서도 쉼표를 사용하여 DAX 함수 인수를 구분합니다.

  9. 저장을 선택합니다.

Power BI Desktop 내에서는 사용자를 역할에 할당할 수 없습니다. Power BI 서비스에서 할당합니다. username() 또는 userprincipalname() DAX 함수를 사용하고 적절한 관계를 구성하여 Power BI Desktop 내에서 동적 보안을 사용할 수 있습니다.

양방향 필터링 교차 필터링

기본적으로 행 수준 보안 필터링은 관계가 단방향 또는 양방향으로 설정되었는지 여부에 관계없이 단방향 필터를 사용합니다. 행 수준 보안을 사용하여 양방향 교차 필터를 수동으로 활성화할 수 있습니다.

  • 관계를 선택하고 보안 필터 양방향으로 적용 확인란을 선택합니다.

    보안 필터 적용

사용자 이름 또는 로그인 ID를 기반으로 하는 동적 행 수준 보안을 구현할 때 이 상자를 선택합니다.

자세한 내용은 Power BI Desktop에서 DirectQuery를 사용하여 양방향 교차 필터링테이블 형식 BI 의미 체계 모델 보안 기술 백서를 참조하세요.

Power BI Desktop 내에서 역할 유효성 검사

역할을 만든 후에 Power BI Desktop 내에서 역할의 결과를 테스트합니다.

  1. 모델링 탭에서 표시 방법을 선택합니다.

    다음으로 보기를 강조 표시하는 모델링 탭의 스크린샷

    역할로 보기 창이 표시되고, 여기서 직접 만든 역할을 볼 수 있습니다.

    아무 것도 선택하지 않은 역할로 보기 창의 스크린샷

  2. 만든 역할을 선택합니다. 그런 다음, 확인을 선택하여 해당 역할을 적용합니다.

    보고서는 해당 역할과 관련된 데이터를 렌더링합니다.

  3. 또한 다른 사용자를 선택하고 지정된 사용자를 제공할 수 있습니다.

    예제 사용자가 입력된 역할로 보기 창의 스크린샷

    Power BI 서비스 및 Power BI Report Server에서 사용하기 때문에 UPN(사용자 계정 이름)을 제공하는 것이 가장 좋습니다.

    Power BI Desktop 내에서 다른 사용자는 DAX 식을 기반으로 하는 동적 보안을 사용하는 경우에만 다른 결과가 표시됩니다. 이 경우 역할뿐만 아니라 사용자 이름도 포함해야 합니다.

  4. 확인을 선택합니다.

    보고서는 사용자가 볼 수 있는 RLS 필터를 기반으로 렌더링됩니다.

    참고 항목

    역할로 보기 기능은 SSO(Single Sign-On)가 설정된 DirectQuery 모델에서는 작동하지 않습니다.

역할에 멤버 추가

보고서를 Power BI Report Server에 저장한 후에는 보안을 관리하고 서버에 멤버를 추가 또는 제거합니다. 보고서에 대한 게시자 또는 콘텐츠 관리자 권한이 있는 사용자만 사용 가능한 행 수준 보안 옵션이 있으며 회색으로 표시되지 않습니다.

보고서에 필요한 역할이 없으면 Power BI Desktop에서 보고서를 열고 역할을 추가 또는 수정한 다음, Power BI Report Server에 다시 저장해야 합니다.

  1. Power BI Desktop에서 보고서를 Power BI Report Server에 저장합니다. Power BI Report Server용 Power BI Desktop 버전을 사용해야 합니다.

  2. Power BI 보고서 서비스에서 보고서 옆에 있는 줄임표(...)를 선택합니다.

  3. 관리>행 수준 보안을 선택합니다.

    행 수준 보안 관리

    행 수준 보안 페이지의 Power BI Desktop에서 생성한 역할에 멤버를 추가합니다.

  4. 멤버를 추가하려면 멤버 추가를 선택합니다.

  5. 사용자 이름 형식(도메인\사용자) 텍스트 상자에 사용자 또는 그룹을 입력하고 할당할 역할을 선택합니다. 멤버는 조직 내에 있어야 합니다.

    역할에 멤버 추가

    Active Directory 구성 방식에 따라 여기에 사용자 계정 이름을 입력해도 작동합니다. 이 경우 보고서 서버는 해당 사용자 이름을 목록에 표시합니다.

  6. 적용하려면 확인을 클릭합니다.

  7. 구성원을 제거하려면 이름 옆의 확인란을 선택하고 삭제를 선택합니다. 한 번에 여러 멤버를 삭제할 수 있습니다.

    멤버 삭제

username() 및 userprincipalname()

데이터 세트 내에서 DAX 함수 username() 또는 userprincipalname()을 사용할 수 있습니다. Power BI Desktop의 식 내에서 사용할 수 있습니다. 모델을 게시할 때 Power BI Report Server에서 모델을 사용합니다.

Power BI Desktop 내에서 username()은 DOMAIN\User 형식으로 사용자를 반환하고 userprincipalname()은 user@contoso.com 형식으로 사용자를 반환합니다.

Power BI Report Server 내에서 username()과 userprincipalname() 둘 다 이메일 주소와 유사한 사용자의 UPN(사용자 계정 이름)을 반환합니다.

Power BI Report Server에서 사용자 지정 인증을 사용하는 경우 사용자에 대해 설정한 사용자 이름 형식을 반환합니다.

고려 사항 및 제한 사항

다음은 Power BI 모델의 행 수준 보안에 대한 현재 제한 사항입니다.

username() DAX 함수를 사용하여 보고서를 작성한 사용자는 통합 보안이 있는 DirectQuery를 사용할 때를 제외하고 UPN(사용자 계정 이름)이 반환되는 새 동작을 알 수 있습니다. 해당 시나리오에서는 RLS가 준수되지 않으므로 해당 시나리오의 동작은 변경되지 않습니다.

Power BI Desktop으로 생성된 데이터 세트에서만 RLS를 정의할 수 있습니다. Excel로 만든 데이터 세트에 RLS를 사용하려면 먼저 파일을 Power BI Desktop(PBIX) 파일로 변환해야 합니다. Excel 파일 변환에 대해 자세히 알아봅니다.

저장된 자격 증명을 사용하는 추출, 변환, 로드(ETL) 및 DirectQuery 연결만 지원됩니다. 통합 인증을 사용하는 Analysis Services 및 DirectQuery 연결에 대한 라이브 연결은 데이터 원본에서 처리됩니다.

DirectQuery와 함께 통합 보안을 사용하는 경우 다음과 같은 사항을 사용자에게 알릴 수 있습니다.

  • RLS가 비활성화되고 모든 데이터가 반환됩니다.
  • 사용자는 해당 역할 할당을 업데이트할 수 없으며, RLS 관리 페이지에서 오류가 발생합니다.
  • DAX 사용자 이름 함수의 경우 계속해서 사용자 이름을 DOMAIN\USER로 수신합니다.

보고서 작성자는 보고서를 업로드한 후 그에 따라 역할을 할당할 때까지 Power BI Report Server의 보고서 데이터를 볼 수 있는 액세스 권한이 없습니다.

그룹 멤버 자격을 통한 역할 할당은 Power BI Report Server가 NTLM 또는 Kerberos 인증을 사용하여 실행되도록 구성된 경우에만 지원됩니다. 사용자 지정 인증 또는 Windows 기본을 사용하여 실행되는 서버는 역할에 명시적으로 할당된 사용자가 필요합니다.

FAQ

Analysis Services 데이터 원본에 대해 이러한 역할을 만들 수 있나요?

데이터를 Power BI Desktop으로 가져온 경우 사용할 수 있습니다. 라이브 연결을 사용하는 경우 Power BI 서비스 내에서 RLS를 구성할 수 없습니다. RLS는 Analysis Services 모델 온-프레미스 내에서 정의됩니다.

RLS를 사용하여 내 사용자가 액세스할 수 있는 열이나 측정값을 제한할 수 있나요?

아니요. 사용자가 데이터의 특정 행에 대한 액세스 권한이 있는 경우 해당 행에 대한 데이터의 모든 열을 볼 수 있습니다.

RLS를 사용하면 자세한 데이터를 숨기고 시각적 개체에서 요약된 데이터에 대한 액세스 권한을 부여할 수 있나요?

아니요, 데이터 개별 행의 보안을 유지할 수 있지만 사용자는 요약된 데이터 또는 세부 정보를 확인할 수 있습니다.

기존 역할과 멤버가 이미 할당되어 있는 경우 Power BI Desktop에 새 역할을 추가할 수 있나요?

예, 기존 역할이 이미 정의되어 있고 Power BI Report Server에 멤버가 할당되어 있는 경우 추가 역할을 수행하고 현재 할당에 영향을 주지 않고 보고서를 다시 게시할 수 있습니다.

추가 질문이 있으신가요? Power BI 커뮤니티에 질문합니다.