Microsoft Faric

웨어하우스의 행 수준 보안

정홍주 2025. 10. 13. 08:00

 

웨어하우스의 행 수준 보안

 

Power BI Desktop과 웹의 데이터 모델 열기에서 행 수준 보안(Row-level Security)을 적용할 수 있습니다. 아주 유용하게 사용하고 있는데요. 레이크하우스의 경우 OneLake Data Security에서 행 수준 적용을 적용할 수 있습니다. Microsoft Fabric의 웨어하우스에서는 행 수준 보안을 어떻게 적용하는지 확인해보겠습니다.

웨어하우스의 행 수준 보안은 CREATE FUNCTION과 CREATE SECURITY POLICY 구문을 이용하여 적용할 수 있습니다.

AdventureWorksDW의 매출, 고객, 지역, 주문일자, 제품 등의 테이블이 존재합니다. 여기서는 특정 사용자는 해당 국가로만 행 수준 보안을 적용해보겠습니다. 그래서 RegionFilter 테이블을 추가하여 지역 테이블과 관계를 설정했습니다.

RegionFilter 테이블의 구조는 간단하며 아래와 같습니다.

CREATE FUNCTION 구문을 생성합니다. 위 링크의 샘플 구문을 참조하여 RegionFilter와 지역 테이블을 조인하여 함수를 생성합니다.

CREATE SECURITY POLICY 구문은 지역 테이블에 국가 컬럼으로 연결합니다.

 

간략히 행 수준 보안 테스트를 해보겠습니다. 해당 사용자로 로그온하여 지역 테이블을 조회하게 되면 해당 국가만 결과로 나타납니다.

하지만 고객 테이블을 조회하면 다른 국가의 고객 데이터가 조회됩니다. 고객 테이블과 지역 테이블을 조인한 뷰(vCustomer)를 생성하여 뷰에만 조회권한을 부여하여 테스트해 보겠습니다. 300,301,302,303은 미국 지역이나 조회하면 결과가 나타나지 않습니다.

행 수준 보안을 제대로 적용하려면 CREATE SECURITY POLICY가 적용된 테이블외의 다른 테이블은 뷰를 생성하고 권한을 관리해야 합니다. 조금 번거로운데, 더 쉬운 방법을 한번 찾아봐야 할 것 같습니다.

 

간략히 웨어하우스의 행 수준 보안을 확인해보았습니다.