데이터 품질 액세스 제어
데이터 품질 액세스 제어
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;