Microsoft Fabric 데이터 웨어하우징의 행 수준 보안 구현
적용 대상:✅ Microsoft Fabric의 SQL 분석 엔드포인트 및 웨어하우스
Fabric 웨어하우스와 SQL 분석 엔드포인트에서 RLS(행 수준 보안)을 사용하면 사용자 역할 및 조건자를 기반으로 데이터베이스 테이블의 행에 대한 액세스를 제어할 수 있습니다. 자세한 내용은 Fabric 데이터 웨어하우징의 행 수준 보안을 참조 하세요.
이 가이드에서는 Microsoft Fabric 웨어하우스 또는 SQL 분석 엔드포인트에서 행 수준 보안을 구현하는 단계를 안내합니다.
필수 조건
시작하기 전에 다음을 확인합니다.
- 활성 용량 또는 평가판 용량이 있는 Fabric 작업 영역.
- Lakehouse의 Fabric 웨어하우스 또는 SQL 분석 엔드포인트.
- 작업 영역에 대한 관리자, 구성원 또는 참가자 권한 또는 웨어하우스 또는 SQL 분석 엔드포인트에 대한 관리자 권한.
1. 연결
- 웨어하우스 또는 SQL 분석 엔드포인트에 대한 관리자 액세스 권한이 있는 계정을 사용하여 로그인합니다. (작업 영역에 대한 관리자, 구성원 또는 참가자 권한 또는 웨어하우스 또는 SQL 분석 엔드포인트에 대한 제어 권한).
- Fabric 작업 영역을 열고 행 수준 보안을 적용하려는 웨어하우스 또는 SQL 분석 엔드포인트로 이동합니다.
2. 보안 정책 정의
데이터에 액세스를 제어하는 데 사용할 역할 및 조건자를 결정합니다. 역할은 데이터에 액세스할 수 있는 사용자를 정의하고 조건자는 액세스 기준을 정의합니다.
보안 조건자를 만듭니다. 보안 조건자는 사용자가 액세스할 수 있는 행을 결정하는 조건입니다. 조건자는 인라인 테이블 반환 함수로 생성할 수 있습니다.
-- Creating schema for Security CREATE SCHEMA Security; GO -- Creating a function for the SalesRep evaluation CREATE FUNCTION Security.tvf_securitypredicate(@UserName AS varchar(50)) RETURNS TABLE WITH SCHEMABINDING AS RETURN SELECT 1 AS tvf_securitypredicate_result WHERE @UserName = USER_NAME() OR USER_NAME() = 'BatchProcess@contoso.com'; GO -- Using the function to create a Security Policy CREATE SECURITY POLICY YourSecurityPolicy ADD FILTER PREDICATE Security.tvf_securitypredicate(UserName_column) ON sampleschema.sampletable WITH (STATE = ON); GO
YourSecurityPolicy
를 정책 이름으로,tvf_securitypredicate
를 조건자 함수 이름으로,sampleschema
를 스키마 이름으로,sampletable
을 대상 테이블의 이름으로 바꿉니다.이 연습에서는 데이터 테이블의
UserName_column
열에 시스템 함수 USER_NAME()에 의해 채워진 관련 사용자 이름이 포함되어 있다고 가정합니다.UserName_column
을 사용자 이름을 포함하는 테이블의 열로 바꿉니다.WHERE @UserName = USER_NAME();
을 원하는 조건자 기반 보안 필터와 일치하는WHERE
절로 바꿉니다. 그러면UserName
매개 변수에 매핑된@UserName
열이 시스템 함수 USER_NAME()의 결과와 일치하는 데이터를 필터링합니다.- 필요에 따라
WHERE
문에는 데이터 이동을 처리하는 관리 ID의 사용자 이름(예:BatchProcess@contoso.com
)에 대한 예외도 포함됩니다.
- 필요에 따라
필요한 경우 이러한 단계를 반복하여 다른 테이블에 대한 보안 정책을 만듭니다.
3. 행 수준 보안 테스트
연결된 보안 정책을 사용하여 역할의 구성원인 사용자로 Fabric에 로그인합니다. 다음 쿼리를 사용하여 테이블에서 일치해야 하는 값을 확인합니다.
SELECT USER_NAME()
데이터베이스 테이블을 쿼리하여 행 수준 보안이 예상대로 작동하는지 확인합니다. 사용자는 역할에 정의된 보안 조건자를 충족하는 데이터만 볼 수 있습니다. 예시:
SELECT * FROM sampleschema.sampletable
사용자에 대한 유사한 필터링 결과는 데이터베이스 액세스에 Microsoft Entra 인증을 사용하는 다른 애플리케이션으로 필터링됩니다. 자세한 내용은 Microsoft Fabric의 SQL 인증 대신 Microsoft Entra 인증을 참조하세요.
4. 행 수준 보안의 모니터링 및 유지 관리
보안 요구 사항이 진화함에 따라 행 수준 보안 정책을 정기적으로 모니터링하고 업데이트합니다. 지속적으로 역할 할당을 추적하고 사용자에게 적절한 액세스 권한이 있는지 확인합니다.