동작 변경 관리

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

개요

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             |
+-------------------+
Copy

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

향후 동작 변경 릴리스 번들에서 Snowflake는 마스킹 정책 조건의 길이, 전체 자릿수, 소수 자릿수에 대한 값을 반환할 계획입니다(“반환 값 업데이트”로 통칭). 이러한 반환 값 업데이트가 수행되면 다음이 true일 때 마스킹 정책으로 보호되는 열에 대한 쿼리가 실패합니다.

  • 번들이 활성화됩니다.

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

    정책 생성:

    CREATE MASKING POLICY MP AS (s string)
    RETURNS STRING -> 'abcdef';
    
    Copy

    정책 할당:

    CREATE TABLE t(col1 string(2));
    
    ALTER TABLE t MODIFY COLUMN col1 SET MASKING POLICY mp;
    
    Copy

    열 쿼리(실패):

    SELECT * FROM t;
    
    Copy

이 변경 사항의 영향을 확인하고 데이터를 보호하기 위해 마스킹 정책 조건을 업데이트할 충분한 시간을 제공하려면 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';
Copy

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

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

  1. 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;
    
    Copy
  2. BCR_2022_07_DDM_ROLLOUT 뷰 참조 섹션의 REASON 열을 평가하여 마스킹 정책 조건에 대해 어떤 업데이트가 필요한지 결정합니다.

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

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

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 값을 반환하거나 마스킹 정책 조건에 하위 쿼리가 포함됩니다.

반환 값이 열의 길이, 전체 자릿수 또는 소수 자릿수보다 작거나 같아지도록 정책을 수정합니다.