다음을 통해 공유


Microsoft Fabric 데이터 웨어하우징의 행 수준 보안 구현

적용 대상:✅ Microsoft Fabric의 SQL 분석 엔드포인트 및 웨어하우스

Fabric 웨어하우스와 SQL 분석 엔드포인트에서 RLS(행 수준 보안)을 사용하면 사용자 역할 및 조건자를 기반으로 데이터베이스 테이블의 행에 대한 액세스를 제어할 수 있습니다. 자세한 내용은 Fabric 데이터 웨어하우징의 행 수준 보안을 참조 하세요.

이 가이드에서는 Microsoft Fabric 웨어하우스 또는 SQL 분석 엔드포인트에서 행 수준 보안을 구현하는 단계를 안내합니다.

필수 조건

시작하기 전에 다음을 확인합니다.

  1. 활성 용량 또는 평가판 용량이 있는 Fabric 작업 영역.
  2. Lakehouse의 Fabric 웨어하우스 또는 SQL 분석 엔드포인트.
  3. 작업 영역에 대한 관리자, 구성원 또는 참가자 권한 또는 웨어하우스 또는 SQL 분석 엔드포인트에 대한 관리자 권한.

1. 연결

  1. 웨어하우스 또는 SQL 분석 엔드포인트에 대한 관리자 액세스 권한이 있는 계정을 사용하여 로그인합니다. (작업 영역에 대한 관리자, 구성원 또는 참가자 권한 또는 웨어하우스 또는 SQL 분석 엔드포인트에 대한 제어 권한).
  2. Fabric 작업 영역을 열고 행 수준 보안을 적용하려는 웨어하우스 또는 SQL 분석 엔드포인트로 이동합니다.

2. 보안 정책 정의

  1. 데이터에 액세스를 제어하는 데 사용할 역할 및 조건자를 결정합니다. 역할은 데이터에 액세스할 수 있는 사용자를 정의하고 조건자는 액세스 기준을 정의합니다.

  2. 보안 조건자를 만듭니다. 보안 조건자는 사용자가 액세스할 수 있는 행을 결정하는 조건입니다. 조건자는 인라인 테이블 반환 함수로 생성할 수 있습니다. 이 간단한 연습에서는 UserName_column 데이터 테이블에 시스템 함수 USER_NAME()으로 채워진 관련 사용자 이름을 포함하는 열이 있다고 가정합니다.

    -- 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();
    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 
    
  3. YourSecurityPolicy를 정책 이름으로, tvf_securitypredicate를 조건자 함수 이름으로, sampleschema를 스키마 이름으로, sampletable을 대상 테이블의 이름으로 바꿉니다.

  4. UserName_column을 사용자 이름을 포함하는 테이블의 열로 바꿉니다.

  5. WHERE @UserName = USER_NAME();을 원하는 조건자 기반 보안 필터와 일치하는 WHERE 절로 바꿉니다. 그러면 UserName 매개 변수에 매핑된 @UserName 열이 시스템 함수 USER_NAME()의 결과와 일치하는 데이터를 필터링합니다.

  6. 필요한 경우 이러한 단계를 반복하여 다른 테이블에 대한 보안 정책을 만듭니다.

3. 행 수준 보안 테스트

  1. 연결된 보안 정책을 사용하여 역할의 구성원인 사용자로 Fabric에 로그인합니다. 다음 쿼리를 사용하여 테이블에서 일치해야 하는 값을 확인합니다.

    SELECT USER_NAME() 
    
  2. 데이터베이스 테이블을 쿼리하여 행 수준 보안이 예상대로 작동하는지 확인합니다. 사용자는 역할에 정의된 보안 조건자를 충족하는 데이터만 볼 수 있습니다. 예시:

    SELECT * FROM sampleschema.sampletable
    
  3. 사용자에 대한 유사한 필터링 결과는 데이터베이스 액세스에 Microsoft Entra 인증을 사용하는 다른 애플리케이션으로 필터링됩니다. 자세한 내용은 Microsoft Fabric의 SQL 인증 대신 Microsoft Entra 인증을 참조하세요.

4. 행 수준 보안의 모니터링 및 유지 관리

보안 요구 사항이 진화함에 따라 행 수준 보안 정책을 정기적으로 모니터링하고 업데이트합니다. 지속적으로 역할 할당을 추적하고 사용자에게 적절한 액세스 권한이 있는지 확인합니다.