데이터 품질 액세스 제어

데이터 품질 액세스 제어

Enterprise Edition 기능 — 데이터 품질 모니터링(Data Quality Monitoring)은 Enterprise Edition이 필요해요. 업그레이드 문의는 Snowflake 지원에 연락해 주세요.

다음 섹션은 데이터 품질과 데이터 메트릭 함수(DMF)와 관련된 작업에 대한 액세스 제어 요구 사항을 설명해요.

출처: Documentation

본문

일반 작업

작업 필요한 권한/역할 비고
DMF를 테이블 또는 뷰와 연결 계정에 대한 EXECUTE DATA METRIC FUNCTION 데이터베이스 역할은 존재하는 데이터베이스로 범위가 지정되므로 전역 권한을 데이터베이스 역할에 부여할 수 없어요. 데이터베이스 역할이 소유한 객체가 있고 그 객체에 DMF를 설정하려면 객체의 OWNERSHIP 권한을 사용자 지정 역할 또는 시스템 역할로 이전해야 해요.
DMF에 대한 USAGE 권한 모든 사용자는 시스템 DMF에 대한 USAGE 권한이 있어요 [1]. 사용자 지정 DMF는 "사용자 지정 DMF에 권한 부여"를 참고해요.
다음 중 하나: 테이블에 OWNERSHIP 권한이 있는 역할 / 테이블에 SELECT 권한이 있고 EXECUTE AS ROLE 속성으로 지정된 역할 EXECUTE AS ROLE 속성에 대한 자세한 내용은 "테이블 또는 뷰에 대한 필수 권한"을 참고해요.
객체와 DMF 사이의 연결 보기 DMF에 대한 USAGE 권한 모든 사용자는 시스템 DMF에 대한 USAGE 권한이 있어요 [1]. 사용자 지정 DMF는 "사용자 지정 DMF에 권한 부여"를 참고해요.
DMF와 연결된 테이블 또는 뷰에 대한 SELECT 권한
테이블의 DMF 일정 설정 다음 중 하나: 테이블에 대한 OWNERSHIP / 테이블에 대한 모든 권한과 계정에 대한 EXECUTE DATA METRIC FUNCTION
사용자 지정 DMF 만들기 스키마에 대한 CREATE DATA METRIC FUNCTION 권한
DMF 수동 호출 DMF에 대한 USAGE 권한 모든 사용자는 시스템 DMF에 대한 USAGE 권한이 있어요 [1]. 사용자 지정 DMF는 "사용자 지정 DMF에 권한 부여"를 참고해요.
호출에 지정된 테이블 또는 뷰에 대한 SELECT 권한

[1] 시스템 DMF에 대한 USAGE 권한을 취소하려면 Snowflake 지원에 문의해요.

데이터 품질 결과 보기

보기 옵션 필요한 권한/역할 비고
DATA_QUALITY_MONITORING_RESULTS_RAW 이벤트 테이블 SNOWFLAKE.DATA_QUALITY_MONITORING_ADMIN 애플리케이션 역할
DATA_QUALITY_MONITORING_RESULTS 뷰 다음 중 하나: SNOWFLAKE.DATA_QUALITY_MONITORING_ADMIN 애플리케이션 역할 / SNOWFLAKE.DATA_QUALITY_MONITORING_VIEWER 애플리케이션 역할
DATA_QUALITY_MONITORING_RESULTS 함수 다음 중 하나: SNOWFLAKE.DATA_QUALITY_MONITORING_ADMIN 애플리케이션 역할 / SNOWFLAKE.DATA_QUALITY_MONITORING_VIEWER 애플리케이션 역할 / SNOWFLAKE.DATA_QUALITY_MONITORING_LOOKUP 애플리케이션 역할 PUBLIC 역할에 DATA_QUALITY_MONITORING_LOOKUP 애플리케이션 역할이 부여되므로, 사용자는 어떤 역할로도 DATA_QUALITY_MONITORING_RESULTS 함수를 호출할 수 있어요.
DMF에 대한 USAGE 권한 모든 사용자는 시스템 DMF에 대한 USAGE 권한이 있어요 [2]. 사용자 지정 DMF는 "사용자 지정 DMF에 권한 부여"를 참고해요.
DMF와 연결된 테이블에 대한 OWNERSHIP 또는 SELECT 권한
연결의 EXECUTE AS ROLE 속성이 역할을 지정하면 그 역할이 세션에서 활성화되어 있어야 해요.

[2] 시스템 DMF에 대한 USAGE 권한을 취소하려면 Snowflake 지원에 문의해요.

테이블 또는 뷰에 대한 필수 권한

DMF를 테이블 또는 뷰와 연결하기 위한 액세스 제어 요구 사항 중 하나는 그 테이블 또는 뷰에 적절한 권한을 갖는 것이에요. 객체에 DMF를 연결하려면 역할이 다음 권한 중 하나를 가져야 해요.

  • 테이블 또는 뷰에 대한 OWNERSHIP 권한
  • 테이블 또는 뷰에 대한 SELECT 권한

객체에 SELECT 권한이 있는 역할이 그 객체에 DMF를 연결할 수 있게 하려면, 연결을 정의할 때 EXECUTE AS ROLE 속성을 설정해야 해요. 이 속성은 DMF가 실행되는 역할을 지정해요. 예를 들어 analyst_role 역할이 테이블 t1에 SELECT 권한이 있다고 가정해요. positive_number_count DMF를 테이블 t1과 연결해 analyst_role 역할로 실행되게 하려면 다음 명령을 실행해요.

ALTER TABLE t1
  ADD DATA METRIC FUNCTION governance.dfms.positive_number_count on (c1, c2, c3)
    EXECUTE AS ROLE analyst_role;

이 명령은 analyst_role 역할을 가진 사용자나 역할 계층에서 더 높은 역할(예: ACCOUNTADMIN 역할)을 가진 사용자가 실행할 수 있어요.

EXECUTE AS ROLE 속성이 지정되지 않으면 DMF는 테이블 소유자의 역할로 실행돼요. DMF가 실행되는 역할은 현재 사용자의 역할에 따라 다르게 동작하는 데이터 거버넌스 정책에 영향을 줄 수 있으므로 중요해요.

EXECUTE AS ROLE 속성의 이점

EXECUTE AS ROLE 속성을 사용하면 소유자가 아닌 사용자도 테이블 또는 뷰에 DMF를 연결하고 실행할 수 있어요. 이를 통해 데이터 거버넌스 관리자가 테이블을 소유하지 않고도 데이터 품질 검사를 만들 수 있어요.

제한 사항

MODIFY DATA METRIC FUNCTION 절을 사용해 EXECUTE AS ROLE 속성이 지정한 역할을 변경할 수 없어요. 연결을 삭제한 다음 새 EXECUTE AS ROLE 역할로 다시 만들어야 해요.

사용자 지정 DMF에 권한 부여

GRANT와 REVOKE 명령은 만든 사용자 지정 DMF의 인자를 지정해야 해요. 예를 들어:

GRANT USAGE ON FUNCTION
  governance.dmfs.count_positive_numbers(TABLE(NUMBER, NUMBER, NUMBER))
  TO data_engineer;

더 알아보기