동작 변경 관리¶
이 문서에서는 계정에서 특정 동작 변경 번들이 활성화되었는지 확인하는 방법과 이를 활성화 또는 비활성화하는 방법에 대해 설명합니다.
이 항목의 내용:
개요¶
Snowflake는 정기적으로 예약된 릴리스 에 포함된 번들에서 매달 동작 변경을 구현합니다. 각 동작 변경 번들에 대한 테스트 기간 및 옵트아웃 기간 동안 계정에서 번들을 활성화하거나 비활성화할 수 있습니다. 이 문서에서는 계정에서 특정 번들의 활성화 여부를 확인하는 방법과 이를 활성화 또는 비활성화하는 방법에 대해 설명합니다.
이 문서에서 bundle_name
은 동작 변경 로그 에서 제공되는 YYYY_NN
형식의 동작 변경 번들의 이름입니다.
참고
번들의 동작 변경은 개별적으로 활성화/비활성화할 수 없습니다. 동작 변경을 활성화/비활성화하려면 변경이 포함된 번들을 활성화/비활성화해야 합니다.
계정의 동작 변경 번들 상태 확인하기¶
특정 동작 변경 번들이 사용자 계정에서 활성화되었는지 확인하려면 bundle_name
을 인자로 사용하여 SYSTEM$BEHAVIOR_CHANGE_BUNDLE_STATUS 함수를 사용합니다.
SELECT SYSTEM$BEHAVIOR_CHANGE_BUNDLE_STATUS('2021_02'); +-------------------------------------------------+ | SYSTEM$BEHAVIOR_CHANGE_BUNDLE_STATUS('2021_02') | |-------------------------------------------------| | DISABLED | +-------------------------------------------------+
계정에서 동작 변경 번들 활성화하기¶
계정에서 특정 동작 변경을 활성화하려면 SYSTEM$ENABLE_BEHAVIOR_CHANGE_BUNDLE 함수를 사용하고 변경이 포함된 bundle_name
을 지정하십시오.
SELECT SYSTEM$ENABLE_BEHAVIOR_CHANGE_BUNDLE('2021_02'); +-------------------------------------------------+ | SYSTEM$ENABLE_BEHAVIOR_CHANGE_BUNDLE('2021_02') | |-------------------------------------------------| | ENABLED | +-------------------------------------------------+
계정에서 동작 변경 번들 비활성화하기¶
계정에서 특정 동작 변경을 비활성화하려면 SYSTEM$DISABLE_BEHAVIOR_CHANGE_BUNDLE 함수를 사용하고 변경이 포함된 bundle_name
을 지정하십시오.
SELECT SYSTEM$DISABLE_BEHAVIOR_CHANGE_BUNDLE('2021_02'); +-------------------------------------------------+ | SYSTEM$DISABLE_BEHAVIOR_CHANGE_BUNDLE('2021_02')| |-------------------------------------------------| | DISABLED | +-------------------------------------------------+
마스킹 정책 반환 값 업데이트 완화하기¶
이 섹션에서는 NULL 반환 값과 마스킹 정책 조건에서 길이, 전체 자릿수, 소수 자릿수의 반환 값에 대한 업데이트(《반환 값 업데이트》로 통칭함)와 (SNOWFLAKE BCR_ROLLOUT에 있는) BCR_2022_07_DDM_ROLLOUT이라는 임시 뷰를 사용하여 이러한 반환 값 업데이트를 완화하는 방법에 대해 설명합니다.
2022_08
동작 변경 번들의 테스트 기간 동안 Snowflake는 다음이 true일 때 쿼리에 실패합니다.
동작 변경 번들이 활성화됩니다. 그리고
다음의 경우에 마스킹 정책으로 열을 쿼리합니다.
마스킹 정책 조건은 NOT NULL인 열 필드에 대해 NULL을 반환합니다.
예를 들어 마스킹 정책은 열 데이터 타입이 INTEGER이므로 정수여야 하는 필드에 대해 NULL을 반환합니다.
마스킹 정책 조건은 길이, 소수 자릿수 또는 전체 자릿수가 마스킹 정책이 할당된 열의 길이, 소수 자릿수 또는 전체 자릿수보다 큰 값을 반환합니다. 예:
정책 생성:
create masking policy mp as (s string) returns string -> 'abcdef';
정책 할당:
create table t(col1 string(2)); alter table t modify column col1 set masking policy mp;
열 쿼리(실패):
select * from t;
이 변경 사항의 영향을 확인하고 데이터를 보호하는 마스킹 정책 조건을 업데이트할 시간을 충분히 제공하려고, Snowflake는 공유 SNOWFLAKE 데이터베이스 내에서 테이블 열, 마스킹 정책 그리고 마스킹 정책으로 보호되는 열에서 쿼리가 실패하는 추정 원인을 매핑하는 특수한 스키마와 뷰를 제공합니다.
반환 값 업데이트는 기본적으로 2023_01
동작 변경 번들이 게시될 때(즉, 2022_08
동작 변경 번들에 대한 옵트아웃 기간) 활성화됩니다. 옵트아웃 기간 중, 반환 값 업데이트의 효과를 더욱 지연할 수 있도록 동작 변경 번들을 비활성화하는 옵션을 제공합니다.
BCR_2022_07_DDM_ROLLOUT 뷰는 임시 뷰입니다. Snowflake는 2023_02
동작 변경 번들이 게시될 때 반환 값 업데이트가 일반적으로 활성화 되는 경우에 뷰를 제거합니다. 현재로서는 더 이상 뷰를 쿼리하여 영향을 받는 열과 정책을 확인하거나 반환 값 업데이트로 인한 열 쿼리 또는 마스킹 정책 할당 작업 실패를 방지할 수 없습니다.
동작 변경 프로세스에 대한 자세한 내용은 동작 변경 정책 을 참조하십시오.
마스킹 정책 및 열 연결 식별하기¶
뷰를 쿼리하고 예정된 반환 값 변경을 완화하려면 다음을 수행하십시오.
SNOWFLAKE.BCR_ROLLOUT.BCR_2022_07_DDM_ROLLOUT
뷰를 쿼리합니다. 예:use role accountadmin; select * from snowflake.bcr_rollout.bcr_2022_07_ddm_rollout;
BCR_2022_07_DDM_ROLLOUT 뷰 참조 섹션의 REASON 열을 평가하여 마스킹 정책 조건에 대해 어떤 업데이트가 필요한지 결정합니다.
열 데이터가 보호된 상태로 유지되고 정책 할당 작업 또는 보호된 열 쿼리가 실패하지 않도록 보장하기 위해 ALTER MASKING POLICY 문으로 마스킹 정책 조건을 업데이트합니다.
마스킹 정책이 할당된 테이블 열을 쿼리하여 새 정책 조건을 테스트합니다.
BCR_2022_07_DDM_ROLLOUT 뷰 참조¶
(SNOWFLAKE BCR_ROLLOUT 스키마에 있는) BCR_2022_07_DDM_ROLLOUT 뷰는 2022년 7월 15일부터 정보를 기록하기 시작하며 다음 열을 포함합니다.
열 |
데이터 타입 |
설명 |
---|---|---|
POLICY_NAME |
TEXT |
정책의 이름입니다. |
POLICY_ID |
NUMBER |
정책의 내부/시스템 생성 식별자입니다. |
POLICY_SCHEMA |
TEXT |
정책의 상위 스키마입니다. |
POLICY_DATABASE |
TEXT |
정책의 상위 데이터베이스입니다. |
POLICY_BODY |
TEXT |
열 데이터를 마스크하거나 마스크 해제하는 정책의 조건입니다. |
COLUMN_NAME |
TEXT |
정책이 있는 열의 이름입니다. |
TABLE_NAME |
TEXT |
테이블의 이름입니다. |
TABLE_ID |
NUMBER |
테이블의 내부/시스템 생성 식별자입니다. |
TABLE_SCHEMA |
TEXT |
테이블의 상위 스키마입니다. |
TABLE_DATABASE |
TEXT |
테이블의 상위 데이터베이스입니다. |
REASON |
TEXT |
불일치에 대한 추정 이유입니다. |
REASON 열은 다음 테이블의 REASON_MESSAGE 열로 지정된 대로 다음 값 중 하나를 가질 수 있습니다. 아래 테이블의 추가 열은 관리자가 REASON 열을 해석하고 마스킹 정책 조건을 업데이트하는 방법을 결정하는 데 도움이 됩니다.
이유 메시지 |
원인 |
동작 |
---|---|---|
POLICY_ASSOCIATION_ON_NOT_NULL_COLUMN |
NOT NULL 열에 마스킹 정책이 할당됩니다. |
마스킹 정책 조건이 정책 조건의 어디에서도 NULL 값을 반환하지 않는지 확인합니다. |
LENGTH_MISMATCH |
데이터 타입이 VARCHAR 또는 BINARY인 열에 할당된 마스킹 정책은 열 길이보다 긴 데이터를 반환합니다. |
반환 값의 길이가 열의 길이보다 짧거나 같아지도록 마스킹 정책 조건을 수정합니다. |
PRECISION_MISMATCH |
데이터 타입이 NUMBER인 열에 할당된 마스킹 정책은 열의 전체 자릿수보다 더 큰 전체 자릿수 데이터를 반환합니다. |
반환 값의 전체 자릿수가 열의 전체 자릿수보다 작거나 같아지도록 정책 조건을 수정합니다. |
SCALE_MISMATCH |
데이터 타입이 NUMBER 또는 TIMESTAMP인 열에 할당된 정책은 해당 열의 소수 자릿수보다 큰 소수 자릿수를 가진 데이터를 반환합니다. |
반환 값의 소수 자릿수가 열의 소수 자릿수보다 작거나 같아지도록 정책 조건을 수정합니다. |
Unknown mismatch. Manual investigation recommended. |
마스킹 정책이 NULL 값을 반환하거나 마스킹 정책 조건에 하위 쿼리가 포함됩니다. |
반환 값이 열의 길이, 전체 자릿수 또는 소수 자릿수보다 작거나 같아지도록 정책을 수정합니다. |