동작 변경 관리¶
이 문서에서는 계정에서 특정 동작 변경 번들 이 활성화되었는지 확인하는 방법과 이를 활성화 또는 비활성화하는 방법에 대해 설명합니다.
개요¶
Snowflake는 정기적으로 예약된 릴리스 에 포함된 번들에서 매달 동작 변경을 구현합니다. 각 동작 변경 번들에 대한 테스트 기간 및 옵트아웃 기간 동안 계정에서 번들을 활성화하거나 비활성화할 수 있습니다. 이 문서에서는 계정에서 특정 번들의 활성화 여부를 확인하는 방법과 이를 활성화 또는 비활성화하는 방법에 대해 설명합니다.
이 문서에서 동작 변경 번들의 이름은 YYYY_NN
형식으로 되어 있습니다. 현재 사용 가능한 동작 변경 번들의 이름은 동작 변경 로그 섹션을 참조하십시오.
참고
번들의 동작 변경은 개별적으로 활성화/비활성화할 수 없습니다. 동작 변경을 활성화/비활성화하려면 변경이 포함된 번들을 활성화/비활성화해야 합니다.
계정의 동작 변경 번들 상태 확인하기¶
특정 동작 변경 번들이 자신의 계정에서 활성화되었는지 확인하려면 SYSTEM$BEHAVIOR_CHANGE_BUNDLE_STATUS 함수를 호출하십시오. 예를 들어 2024_02
라는 번들의 상태를 확인하려면 다음 안내를 따르십시오.
SELECT SYSTEM$BEHAVIOR_CHANGE_BUNDLE_STATUS('2024_02');
+-------------------------------------------------+
| SYSTEM$BEHAVIOR_CHANGE_BUNDLE_STATUS('2024_02') |
|-------------------------------------------------|
| DISABLED |
+-------------------------------------------------+
현재 사용 가능한 모든 동작 변경 번들의 상태를 확인하려면 SYSTEM$SHOW_ACTIVE_BEHAVIOR_CHANGE_BUNDLES 함수를 호출하십시오.
SELECT SYSTEM$SHOW_ACTIVE_BEHAVIOR_CHANGE_BUNDLES();
+--------------------------------------------------------------------------------------------------------------+
| SYSTEM$SHOW_ACTIVE_BEHAVIOR_CHANGE_BUNDLES() |
|--------------------------------------------------------------------------------------------------------------|
| [{"name":"2023_08","isDefault":true,"isEnabled":true},{"name":"2024_01","isDefault":false,"isEnabled":true}] |
+--------------------------------------------------------------------------------------------------------------+
계정에서 동작 변경 번들 활성화하기¶
계정에서 특정 동작 변경을 활성화하려면 SYSTEM$ENABLE_BEHAVIOR_CHANGE_BUNDLE 함수를 호출하십시오. 예를 들어 2024_02
라는 번들을 활성화하려면 다음 안내를 따르십시오.
SELECT SYSTEM$ENABLE_BEHAVIOR_CHANGE_BUNDLE('2024_02');
+-------------------------------------------------+
| SYSTEM$ENABLE_BEHAVIOR_CHANGE_BUNDLE('2024_02') |
|-------------------------------------------------|
| ENABLED |
+-------------------------------------------------+
계정에서 동작 변경 번들 비활성화하기¶
계정의 특정 동작 변경을 비활성화하려면 SYSTEM$DISABLE_BEHAVIOR_CHANGE_BUNDLE 을 호출하십시오. 예를 들어 2024_02
라는 번들을 비활성화하려면 다음 안내를 따르십시오.
SELECT SYSTEM$DISABLE_BEHAVIOR_CHANGE_BUNDLE('2024_02');
+-------------------------------------------------+
| SYSTEM$DISABLE_BEHAVIOR_CHANGE_BUNDLE('2024_02')|
|-------------------------------------------------|
| DISABLED |
+-------------------------------------------------+
계정의 현재 버전 확인하기¶
계정에 있는 Snowflake의 현재 버전을 확인하려면 CURRENT_VERSION 함수를 호출하십시오. 예:
SELECT CURRENT_VERSION();+-------------------+ | CURRENT_VERSION() | |-------------------| | 8.5.1 | +-------------------+
마스킹 정책 반환 값 업데이트 완화하기¶
향후 동작 변경 릴리스 번들에서 Snowflake는 마스킹 정책 조건의 길이, 전체 자릿수, 소수 자릿수에 대한 값을 반환할 계획입니다(“반환 값 업데이트”로 통칭). 이러한 반환 값 업데이트가 수행되면 다음이 true일 때 마스킹 정책으로 보호되는 열에 대한 쿼리가 실패합니다.
번들이 활성화됩니다.
마스킹 정책 조건은 길이, 소수 자릿수 또는 전체 자릿수가 마스킹 정책이 할당된 열의 길이, 소수 자릿수 또는 전체 자릿수보다 큰 값을 반환합니다. 예:
정책 생성:
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.BCR_ROLLOUT.BCR_2022_07_DDM_ROLLOUT 뷰를 쿼리하여 향후 반환 값 업데이트가 계정에 미치는 영향을 파악하십시오.
BCR_2022_07_DDM_ROLLOUT 뷰는 임시 뷰입니다. Snowflake는 반환 값 업데이트가 향후 동작 변경 번들에 일반적으로 활성화될 때 뷰를 제거합니다. 현재로서는 뷰를 쿼리하여 영향을 받는 열과 정책을 확인하거나 반환 값 업데이트로 인한 열 쿼리 또는 마스킹 정책 할당 작업 실패를 방지할 수 없습니다.
이 뷰는 2022년 7월부터 데이터를 기록합니다. 뷰에 대한 쿼리를 완료하는 데 시간이 오래 걸리는 경우 SET 명령을 사용하여 시작 날짜 및 종료 날짜 세션 변수를 지정할 수 있습니다. 이러한 변수는 뷰를 쿼리할 때 평가할 행 수를 줄이는 데 도움이 됩니다. 예:
SET START_DATE = '2023-02-28'; SET END_DATE = '2023-11-30';
마스킹 정책 및 열 연결 식별하기¶
뷰를 쿼리하고 예정된 반환 값 변경을 완화하려면 다음을 수행하십시오.
SNOWFLAKE.BCR_ROLLOUT.BCR_2022_07_DDM_ROLLOUT 뷰를 쿼리합니다. 예:
USE ROLE ACCOUNTADMIN; SET START_DATE = '2023-02-28'; SET END_DATE = '2023-11-30'; 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 |
VARCHAR |
정책의 이름입니다. |
POLICY_ID |
NUMBER |
정책의 내부/시스템 생성 식별자입니다. |
POLICY_SCHEMA |
VARCHAR |
정책의 상위 스키마입니다. |
POLICY_DATABASE |
VARCHAR |
정책의 상위 데이터베이스입니다. |
POLICY_BODY |
VARIANT |
열 데이터를 마스크하거나 마스크 해제하는 정책의 조건입니다. |
COLUMN_NAME |
VARCHAR |
정책이 있는 열의 이름입니다. |
TABLE_NAME |
VARCHAR |
테이블의 이름입니다. |
TABLE_ID |
NUMBER |
테이블의 내부/시스템 생성 식별자입니다. |
TABLE_SCHEMA |
VARCHAR |
테이블의 상위 스키마입니다. |
TABLE_DATABASE |
VARCHAR |
테이블의 상위 데이터베이스입니다. |
REASON |
VARCHAR |
불일치에 대한 추정 이유입니다. |
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 값을 반환하거나 마스킹 정책 조건에 하위 쿼리가 포함됩니다. |
반환 값이 열의 길이, 전체 자릿수 또는 소수 자릿수보다 작거나 같아지도록 정책을 수정합니다. |