POWER BI

[POWER BI/파워비아이] USERPRINCIPALNAME() 으로 동적 보안 (RLS) 설정하기

하니in독일 2025. 2. 10. 08:00
반응형

 

우리는 지금까지 Power BI에서 동적 보안을 이해하기 위한 기본적인 개념과 방법에 대해 알아보았습니다. 

 

아래의 포스트를 보시면 좀 더 쉽게 기본적인 개념을 이해하실 수 있을 거예요! 

2025.01.03 - [POWER BI] - [POWER BI/파워비아이] 행 수준 보안 (RLS) 완벽 가이드: 기본 개념부터 역할 설정까지

 

그렇다면, 어떻게 하면 이를 좀 더 쉽게 이용할 수 있을까요? 예를 들어, 로그인한 사용자의 이메일 주소를 기준으로 데이터 접근 권한을 설정한다면 어떨까요? 

 

이번 글에서는 테이블 관계를 활용해 RLS를 설정하는 법, 그리고 DAX의 기능 중 하나인 USERPRINCIPALNAME()을 이용하는 법에 대해 알아보겠습니다. 


USERPRINCIPALNAME() 작동 원리 이해하기

작동 원리: 데이터 모델에 사용자 정보 테이블과 판매 데이터 테이블을 연결합니다.

이를 통해 사용자별 데이터를 쉽게 필터 할 수 있습니다. 

 

사용자 정보 테이블 예시 

User ID Email Region Department
1 alice@company.com 서울 Sales
2 bob@company.com 부산 HR
3 charlie@company.com 대구 Sales
4 david@company.com 대전 IT

 

판매 데이터 테이블 예시

Sales ID User ID Employee SalesAmount
T001 1 Alice 120,000
T002 2 Bob 110,000
T003 3 Charlie 105,000
T004 4 David 130,000

 


STEP 1. 테이블 관계 설정

앞서 표시된 사용자 정보와 판매 데이터 테이블을 연결합니다. 연결 필드는 "User ID"를 이용해 줍니다. 

관계를 설정하면, User Information 필터가 자동으로 세일즈 데이터에 적용됩니다. 


STEP 2. RLS 조건 작성

이제 USERPRINCIPALNAME()을 RLS 조건에 작성해 데이터를 필터 하도록 합니다. 

이는 연결된 이메일과 동적으로 작동하여 데이터와 보고서를 자동으로 필터해 보여주도록 합니다. 

 

 


STEP 3. RLS 테스트하기

이제 테스트를 해 볼까요? 데스크탑 버전에서는 이메일을 넣어 데이터의 접근이 되는지 체크할 수 있습니다. 

예를 들어, 앞서 만들었던 그룹과 User 이메일을 넣어주면, 그 사용자가 보는 데이터를 보고, RLS가 제대로 작동되었는지 체크할 수 있습니다. 


 

STEP 4. Power BI Service에서 RLS 적용하기

 

Power BI Service에 보고서를 발행한 후에 원하는 이메일 주소를 Security Group에 넣어주면 RLS 구조가 완성됩니다! 

 

1. Sematic Model (시맨틱 데이터) 모델에서 Security를 클릭해 줍니다. 

2. 원하는 이메일을 각 그룹에 넣어줍니다. 


오늘은 RLS와 DAX를 이용해 데이터 권한을 쉽게 관리하는 법에 대해 알아보았습니다. RLS를 완성하기 위해 Power BI Service가 필수라는 사실! 

다음 시간에도 더 재미있는 Power BI 기능으로 돌아오겠습니다.  

반응형