다음을 통해 공유


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

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

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

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

필수 조건

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

  1. 활성 용량 또는 평가판 용량이 있는 패브릭 작업 영역입니다.
  2. Lakehouse의 패브릭 웨어하우스 또는 SQL 분석 엔드포인트입니다.
  3. 작업 영역에 대한 관리자, 구성원 또는 기여자 권한 또는 웨어하우스 또는 SQL 분석 엔드포인트에 대한 상승된 권한

1. 연결

  1. 웨어하우스 또는 SQL 분석 엔드포인트에서 상승된 액세스 권한이 있는 계정을 사용하여 로그인합니다. (작업 영역에 대한 관리자/멤버/기여자 역할 또는 웨어하우스 또는 SQL 분석 엔드포인트에 대한 제어 권한).
  2. 패브릭 작업 영역을 열고 행 수준 보안을 적용하려는 웨어하우스 또는 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. 정책 이름을 tvf_securitypredicate 조건자 함수 sampleschema 의 이름으로 스키마 sampletable 이름과 대상 테이블의 이름으로 바꿉 YourSecurityPolicy 있습니다.

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

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

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

3. 행 수준 보안 테스트

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

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

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

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

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