동작 변경 관리

이 문서에서는 계정에서 특정 동작 변경 번들 이 활성화되었는지 확인하는 방법과 이를 활성화 또는 비활성화하는 방법에 대해 설명합니다.

개요

Snowflake는 정기적으로 예약된 릴리스 에 포함된 번들에서 매달 동작 변경을 구현합니다. 각 동작 변경 번들에 대한 테스트 기간 및 옵트아웃 기간 동안 계정에서 번들을 활성화하거나 비활성화할 수 있습니다. 이 문서에서는 계정에서 특정 번들의 활성화 여부를 확인하는 방법과 이를 활성화 또는 비활성화하는 방법에 대해 설명합니다.

이 문서에서 동작 변경 번들의 이름은 YYYY_NN 형식으로 되어 있습니다. 현재 사용 가능한 동작 변경 번들의 이름은 동작 변경 로그 섹션을 참조하십시오.

참고

번들의 동작 변경은 개별적으로 활성화/비활성화할 수 없습니다. 동작 변경을 활성화/비활성화하려면 변경이 포함된 번들을 활성화/비활성화해야 합니다.

계정의 동작 변경 번들 상태 확인하기

특정 동작 변경 번들이 자신의 계정에서 활성화되었는지 확인하려면 SYSTEM$BEHAVIOR_CHANGE_BUNDLE_STATUS 함수를 호출하십시오. 예를 들어 2024_02 라는 번들의 상태를 확인하려면 다음 안내를 따르십시오.

SELECT SYSTEM$BEHAVIOR_CHANGE_BUNDLE_STATUS('2024_02');
Copy
+-------------------------------------------------+
| SYSTEM$BEHAVIOR_CHANGE_BUNDLE_STATUS('2024_02') |
|-------------------------------------------------|
| DISABLED                                        |
+-------------------------------------------------+

현재 사용 가능한 모든 동작 변경 번들의 상태를 확인하려면 SYSTEM$SHOW_ACTIVE_BEHAVIOR_CHANGE_BUNDLES 함수를 호출하십시오.

SELECT SYSTEM$SHOW_ACTIVE_BEHAVIOR_CHANGE_BUNDLES();
Copy
+--------------------------------------------------------------------------------------------------------------+
| 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');
Copy
+-------------------------------------------------+
| SYSTEM$ENABLE_BEHAVIOR_CHANGE_BUNDLE('2024_02') |
|-------------------------------------------------|
| ENABLED                                         |
+-------------------------------------------------+

계정에서 동작 변경 번들 비활성화하기

계정의 특정 동작 변경을 비활성화하려면 SYSTEM$DISABLE_BEHAVIOR_CHANGE_BUNDLE 을 호출하십시오. 예를 들어 2024_02 라는 번들을 비활성화하려면 다음 안내를 따르십시오.

SELECT SYSTEM$DISABLE_BEHAVIOR_CHANGE_BUNDLE('2024_02');
Copy
+-------------------------------------------------+
| SYSTEM$DISABLE_BEHAVIOR_CHANGE_BUNDLE('2024_02')|
|-------------------------------------------------|
| DISABLED                                        |
+-------------------------------------------------+

계정의 현재 버전 확인하기

계정에 있는 Snowflake의 현재 버전을 확인하려면 CURRENT_VERSION 함수를 호출하십시오. 예:

SELECT CURRENT_VERSION();
Copy
+-------------------+
| CURRENT_VERSION() |
|-------------------|
| 8.5.1             |
+-------------------+

마스킹 정책 반환 값 업데이트 완화하기

2024_04 번들 에서는 마스킹 정책 조건의 전체 자릿수 및 소수 자릿수 값에 대한 변경 사항(총칭하여, “반환 값 업데이트”)이 있습니다. 이러한 반환 값 업데이트가 수행되면 다음이 true일 때 마스킹 정책으로 보호되는 열에 대한 쿼리가 실패합니다.

  • 번들이 활성화됩니다.

  • 마스킹 정책 조건은 길이 또는 전체 자릿수가 마스킹 정책이 할당된 열의 길이 또는 전체 자릿수보다 값을 반환합니다.

반환 값의 소수 자릿수가 열의 소수 자릿수보다 큰 경우 값은 열의 소수 자릿수에 맞게 잘립니다.

기존 정책에 새 동작을 적용하려면 새 마스킹 정책을 생성하고 FORCE 키워드 를 사용하여 기존 정책을 교체합니다.

번들이 활성화되면 다음과 같이 동작을 테스트할 수 있습니다.

  1. 정책 만들기:

    CREATE MASKING POLICY MP AS (s string)
    RETURNS STRING -> 'abcdef';
    
    Copy
  2. 정책 할당:

    CREATE TABLE t(col1 string(2));
    
    ALTER TABLE t MODIFY COLUMN col1 SET MASKING POLICY mp;
    
    Copy
  3. 열 쿼리(실패):

    SELECT * FROM t;
    
    Copy

이 변경 사항의 영향을 확인하고 데이터를 보호하기 위해 마스킹 정책 조건을 업데이트할 충분한 시간을 제공하려면 SNOWFLAKE.BCR_ROLLOUT.BCR_2024_03_DDM_ROLLOUT 뷰를 쿼리하여 향후 반환 값 업데이트가 계정에 미치는 영향을 파악합니다.

BCR_2024_03_DDM_ROLLOUT 뷰는 임시 뷰입니다. Snowflake는 반환 값 업데이트가 향후 동작 변경 번들에 일반적으로 활성화될 때 뷰를 제거합니다. 현재로서는 뷰를 쿼리하여 영향을 받는 열과 정책을 확인하거나 반환 값 업데이트로 인한 열 쿼리 또는 마스킹 정책 할당 작업 실패를 방지할 수 없습니다.

이 뷰는 2024년 3월부터 데이터를 기록합니다. 뷰에 대한 쿼리를 완료하는 데 시간이 오래 걸리는 경우 SET 명령을 사용하여 시작 날짜 및 종료 날짜 세션 변수를 지정할 수 있습니다. 이러한 변수는 뷰를 쿼리할 때 평가할 행 수를 줄이는 데 도움이 됩니다. 예:

SET DDM_CASTING_BCR_START_DATE = '2024-03-01';
SET DDM_CASTING_BCR_END_DATE = '2024-04-03';
Copy

마스킹 정책 및 열 연결 식별하기

뷰를 쿼리하고 예정된 반환 값 변경을 완화하려면 다음을 수행하십시오.

  1. SNOWFLAKE.BCR_ROLLOUT.BCR_2024_03_DDM_ROLLOUT 뷰를 쿼리합니다. 예:

    USE ROLE ACCOUNTADMIN;
    SET DDM_CASTING_BCR_START_DATE = '2024-03-01';
    SET DDM_CASTING_BCR_END_DATE = '2024-04-03';
    SELECT * FROM SNOWFLAKE.BCR_ROLLOUT.BCR_2024_03_DDM_ROLLOUT;
    
    Copy
  2. BCR_2024_03_DDM_ROLLOUT 뷰 참조 섹션의 REASON 열을 평가하여 마스킹 정책 조건에 대해 어떤 업데이트가 필요한지 결정합니다.

  3. 열 데이터가 보호된 상태로 유지되고 정책 할당 작업 또는 보호된 열 쿼리가 실패하지 않도록 보장하기 위해 ALTER MASKING POLICY 문으로 마스킹 정책 조건을 업데이트합니다.

  4. 마스킹 정책이 할당된 테이블 열을 쿼리하여 새 정책 조건을 테스트합니다.

BCR_2024_03_DDM_ROLLOUT 뷰 참조

(SNOWFLAKE BCR_ROLLOUT 스키마에 있는) BCR_2024_03_DDM_ROLLOUT 뷰는 2022년 7월 15일부터 정보를 기록하기 시작하며 다음 열을 포함합니다.

데이터 타입

설명

policy_name

VARCHAR

정책의 이름입니다.

policy_id

NUMBER

정책의 내부/시스템 생성 식별자입니다.

policy_schema

VARCHAR

정책의 상위 스키마입니다.

policy_database

VARCHAR

정책의 상위 데이터베이스입니다.

policy_body

VARIANT

열 데이터를 마스크하거나 마스크 해제하는 정책의 조건입니다.

column_name

VARCHAR

정책이 있는 열의 이름입니다.

COLUMN_TYPE

VARCHAR

열의 데이터 타입입니다.

COLUMN_LENGTH

NUMBER

정책이 있는 열의 길이 또는 열에 설정되어 있지 않은 경우 [NULL] 입니다.

COLUMN_PRECISION

NUMBER

정책이 있는 열의 전체 자릿수 또는 열에 설정되어 있지 않은 경우 [NULL] 입니다.

COLUMN_SCALE

NUMBER

정책이 있는 열의 소수 자릿수 또는 열에 설정되어 있지 않은 경우 [NULL] 입니다.

TABLE_NAME

VARCHAR

테이블의 이름입니다.

table_id

NUMBER

테이블의 내부/시스템 생성 식별자입니다.

table_schema

VARCHAR

테이블의 상위 스키마입니다.

table_database

VARCHAR

테이블의 상위 데이터베이스입니다.

table_kind

VARCHAR

테이블의 유형입니다. TABLE, LOCAL TEMPORARY, VIEW, MATERIALIZED VIEW, EXTERNAL TABLE 또는 DYNAMIC TABLE 중 하나입니다.

reason

VARCHAR

불일치에 대한 추정 이유입니다. precision 또는 scale 중 하나입니다.

LARGEST_MASKED_SIZE

NUMBER

열에 할당된 마스킹 정책에 따라 마스킹된 값이 가질 수 있는 최대 길이, 크기 또는 전체 자릿수입니다.