데이터베이스 수정하기

데이터베이스 수정하기 (ALTER DATABASE)

기존 데이터베이스의 속성을 수정합니다.

데이터베이스 수정에는 다음이 포함됩니다:

  • 데이터베이스 이름을 변경하거나 Time Travel 데이터 보존 기간을 변경하는 작업(Snowflake Enterprise Edition 이상을 사용하는 경우).
  • 데이터베이스 복제 및 장애 조치(failover)를 활성화하고 관리하는 작업.

참조:

CREATE DATABASE, DESCRIBE DATABASE, DROP DATABASE, SHOW DATABASES, UNDROP DATABASE

출처: 문서

본문

구문

ALTER DATABASE [ IF EXISTS ]  RENAME TO 

ALTER DATABASE [ IF EXISTS ]  SWAP WITH 

ALTER DATABASE [ IF EXISTS ]  SET [ DATA_RETENTION_TIME_IN_DAYS =  ]
                                        [ MAX_DATA_EXTENSION_TIME_IN_DAYS =  ]
                                        [ EXTERNAL_VOLUME =  ]
                                        [ CATALOG =  ]
                                        [ ICEBERG_DEFAULT_DDL_COLLATION = '' ]
                                        [ ICEBERG_VERSION_DEFAULT =  ]
                                        [ ICEBERG_MERGE_ON_READ_BEHAVIOR = { 'AUTO' | 'ENABLED' | 'DISABLED' } ]
                                        [ ENABLE_ICEBERG_MERGE_ON_READ = { TRUE | FALSE } ]
                                        [ REPLACE_INVALID_CHARACTERS = { TRUE | FALSE } ]
                                        [ DEFAULT_DDL_COLLATION = '' ]
                                        [ DEFAULT_NOTEBOOK_COMPUTE_POOL_CPU = '' ]
                                        [ DEFAULT_NOTEBOOK_COMPUTE_POOL_GPU = '' ]
                                        [ OBJECT_VISIBILITY = {  | PRIVILEGED } ]
                                        [ LOG_LEVEL = '' ]
                                        [ METRIC_LEVEL = '' ]
                                        [ TRACE_LEVEL = '' ]
                                        [ STORAGE_SERIALIZATION_POLICY = { COMPATIBLE | OPTIMIZED } ]
                                        [ EVENT_TABLE =  ]
                                        [ COMMENT = '' ]
                                        [ CATALOG_SYNC = '' ]
                                        [ REPLICABLE_WITH_FAILOVER_GROUPS = { 'YES' | 'NO' } ]
                                        [ BASE_LOCATION_PREFIX = '' ]
                                        [ DEFAULT_STREAMLIT_NOTEBOOK_WAREHOUSE =  ]
                                        [ CLASSIFICATION_PROFILE = '' ]
                                        [ CONTACT  =  [ ,  =  ... ] ]
                                        [ ENABLE_DATA_COMPACTION = { TRUE | FALSE } ]
                                        [ DATA_QUALITY_MONITORING_SETTINGS =  ]
                                        [ OAUTH_AUTHORIZATION_SERVER =  ]
                                        [ OAUTH_SCOPES_SUPPORTED = '' ]

ALTER DATABASE  SET TAG  = '' [ ,  = '' ... ]

ALTER DATABASE  UNSET TAG  [ ,  ... ]

ALTER DATABASE [ IF EXISTS ]  SET FEATURE POLICY  [ FORCE ]

ALTER DATABASE [ IF EXISTS ]  UNSET FEATURE POLICY

ALTER DATABASE [ IF EXISTS ]  UNSET { DATA_RETENTION_TIME_IN_DAYS         |
                                            MAX_DATA_EXTENSION_TIME_IN_DAYS     |
                                            EXTERNAL_VOLUME                     |
                                            CATALOG                             |
                                            ICEBERG_DEFAULT_DDL_COLLATION       |
                                            ICEBERG_VERSION_DEFAULT             |
                                            ICEBERG_MERGE_ON_READ_BEHAVIOR      |
                                            ENABLE_ICEBERG_MERGE_ON_READ        |
                                            DEFAULT_DDL_COLLATION               |
                                            DEFAULT_NOTEBOOK_COMPUTE_POOL_CPU   |
                                            DEFAULT_NOTEBOOK_COMPUTE_POOL_GPU   |
                                            OBJECT_VISIBILITY                   |
                                            STORAGE_SERIALIZATION_POLICY        |
                                            EVENT_TABLE =     |
                                            COMMENT                             |
                                            CATALOG_SYNC                        |
                                            REPLICABLE_WITH_FAILOVER_GROUPS     |
                                            BASE_LOCATION_PREFIX                |
                                            DEFAULT_STREAMLIT_NOTEBOOK_WAREHOUSE|
                                            CLASSIFICATION_PROFILE              |
                                            CONTACT                    |
                                            ENABLE_DATA_COMPACTION              |
                                            OAUTH_AUTHORIZATION_SERVER          |
                                            OAUTH_SCOPES_SUPPORTED              |
                                            DCM PROJECT
                                          }
                                          [ , ... ]

데이터베이스 복제 및 장애 조치 구문

지원되는 지역

이 기능은 중화인민공화국에서는 사용할 수 없어요.

이 섹션에서는 account replication feature와는 다른 제한된 데이터베이스 복제 기능을 설명해요. Snowflake는 데이터베이스를 복제하고 장애 조치를 수행할 때 계정 복제 기능을 사용할 것을 강력히 권장해요.

데이터베이스 복제

ALTER DATABASE  ENABLE REPLICATION TO ACCOUNTS  [ ,  ... ] [ IGNORE EDITION CHECK ]

ALTER DATABASE  DISABLE REPLICATION [ TO ACCOUNTS  [ ,  ... ] ]

ALTER DATABASE  REFRESH

데이터베이스 장애 조치

ALTER DATABASE  ENABLE FAILOVER TO ACCOUNTS  [ ,  ... ]

ALTER DATABASE  DISABLE FAILOVER [ TO ACCOUNTS  [ ,  ... ] ]

ALTER DATABASE  PRIMARY

매개변수

name

변경할 데이터베이스의 식별자를 지정해요. 식별자에 공백, 특수 문자, 또는 대소문자가 섞인 문자가 포함된 경우 전체 문자열을 큰따옴표로 묶어야 해요. 큰따옴표로 묶인 식별자는 대소문자를 구분해요.

RENAME TO new_db_name

데이터베이스의 새 식별자를 지정해요. 계정 내에서 고유해야 해요.

자세한 내용은 Identifier requirements를 참조하세요.

개체 이름을 변경하면 해당 개체를 참조하는 다른 개체도 새 이름으로 업데이트해야 해요.

SWAP WITH target_db_name

지정된 두 데이터베이스 간에 식별자를 포함한 모든 개체(스키마, 테이블, 뷰 등)와 메타데이터를 교환해요. 또한 두 데이터베이스와 그 안에 포함된 개체에 부여된 모든 액세스 제어 권한도 교환해요. SWAP WITH는 기본적으로 두 데이터베이스의 이름을 바꾸는 작업을 단일 작업으로 수행해요.

SET ...

데이터베이스에 설정할 하나 이상의 속성을 지정해요(공백, 쉼표, 또는 새 줄로 구분해요):

DATA_RETENTION_TIME_IN_DAYS = num

데이터베이스에서 Time Travel 작업(CLONE 및 UNDROP)을 수행할 수 있는 일 수를 지정해요. 또한 데이터베이스에 생성된 모든 스키마의 기본 Time Travel 보존 시간을 지정해요.

지정할 수 있는 값은 사용 중인 Snowflake 에디션에 따라 달라져요:

  • Standard Edition: 0 또는 1
  • Enterprise Edition(이상): 0~90

MAX_DATA_EXTENSION_TIME_IN_DAYS = integer

데이터베이스에 있는 테이블의 스트림이 오래되어(stale) 사용할 수 없게 되는 것을 방지하기 위해 Snowflake가 테이블의 데이터 보존 기간을 연장할 수 있는 최대 일 수를 지정하는 개체 매개변수예요.

이 매개변수에 대한 자세한 설명은 를 참조하세요.

EXTERNAL_VOLUME = external_volume_name

Apache Iceberg™ tables에 사용할 기본 외부 볼륨을 지정하는 개체 매개변수예요.

이 매개변수에 대한 자세한 내용은 를 참조하세요.

CATALOG = catalog_integration_name

Apache Iceberg™ tables에 사용할 기본 카탈로그 통합을 지정하는 개체 매개변수예요.

이 매개변수에 대한 자세한 내용은 를 참조하세요.

ICEBERG_DEFAULT_DDL_COLLATION = 'collation_specification'

Snowflake 관리 Iceberg 테이블의 새 문자열 열에 대한 기본 collation specification을 지정해요.

이 매개변수에 대한 자세한 내용은 를 참조하세요.

ICEBERG_VERSION_DEFAULT = integer

Iceberg 테이블이 따르는 %iceberg-tm% 테이블 사양의 버전을 지정해요.

값:

2: 새 테이블은 Iceberg 버전 2를 따르게 돼요.

3: 새 테이블은 Iceberg 버전 3을 따르게 돼요.

다른 엔진을 사용하여 Iceberg 테이블의 format-version을 테이블 속성에서 v3로 업그레이드하기 전에, 아직 v3를 지원하지 않는 엔진이나 애플리케이션에서 해당 테이블을 사용하지 않는지 확인하세요. Apache Iceberg 사양에서는 format 버전 다운그레이드를 지원하지 않아요. 따라서 모든 읽기 및 쓰기 엔진이 v3를 지원해야 해요. Snowflake에서 Iceberg 테이블의 기본 버전은 v2이며, 필요에 따라 v3로 구성할 수 있어요. 현재 Snowflake를 사용한 제자리 버전 업그레이드는 지원되지 않아요.

기본값:

2

이 매개변수에 대한 자세한 내용은 를 참조하세요.

ICEBERG_MERGE_ON_READ_BEHAVIOR = { 'AUTO' | 'ENABLED' | 'DISABLED' }

Snowflake가 %iceberg-tm% 테이블에서 행 수준 업데이트(UPDATE, DELETE, MERGE)를 수행하는 방식을 지정해요. merge-on-read(데이터와 함께 Iceberg 삭제 파일을 작성하는 방식)와 copy-on-write(전체 데이터 파일을 다시 작성하는 방식) 중에서 선택해요.

매개변수 값은 대소문자를 구분하지 않아요.

값:

'AUTO': Snowflake가 테이블의 Iceberg format 버전과 관리 모드에 따라 merge-on-read 또는 copy-on-write를 선택해요. 자세한 내용은 를 참조하세요.

'ENABLED': 이 매개변수가 적용되는 모든 %iceberg-tm% 테이블에서 format 버전이나 관리 모드와 관계없이 merge-on-read가 활성화돼요.

'DISABLED': 이 매개변수가 적용되는 모든 %iceberg-tm% 테이블에서 merge-on-read가 비활성화돼요. 모든 DML은 copy-on-write를 사용해요.

기본값:

'AUTO'

이 매개변수에 대한 자세한 설명은 를 참조하세요. Snowflake에서 merge-on-read 및 copy-on-write 동작에 대한 자세한 내용은 를 참조하세요.

ENABLE_ICEBERG_MERGE_ON_READ = { TRUE | FALSE }

이 매개변수는 더 이상 사용되지 않아요(deprecated). 대신 ICEBERG_MERGE_ON_READ_BEHAVIOR를 사용하세요. 레거시 매개변수는 ICEBERG_MERGE_ON_READ_BEHAVIOR가 기본값('AUTO')일 때는 여전히 적용되지만, 향후 릴리스에서는 오류를 반환할 거예요.

%iceberg-tm% 테이블에 대해 merge-on-read 동작을 활성화할지 여부를 지정해요.

값:

TRUE: 새 테이블은 merge-on-read 동작을 사용해요. v2 테이블의 경우 Snowflake는 행 수준 삭제에 positional delete 파일을 사용해요. v3 테이블의 경우 조건이 충족되면 Snowflake는 deletion vectors를 사용해요.

참고: 이 매개변수를 TRUE로 설정해도 Snowflake 관리 v2 Iceberg 테이블에서는 merge-on-read가 활성화되지 않아요. ICEBERG_MERGE_ON_READ_BEHAVIOR가 기본값('AUTO')일 때 이 설정은 자동 매트릭스를 거치며, Snowflake 관리 v2 테이블은 copy-on-write로 유지돼요. Snowflake 관리 v2 테이블에서 merge-on-read를 활성화하려면 ICEBERG_MERGE_ON_READ_BEHAVIOR = 'ENABLED'를 명시적으로 설정하세요.


FALSE: 새 테이블은 copy-on-write 동작을 사용합니다.

기본값:

TRUE

이 매개변수에 대한 자세한 설명은 을(를) 참조하세요. Snowflake에서 merge-on-read 및 copy-on-write 동작에 대한 자세한 내용은 을(를) 참조하세요.

REPLACE_INVALID_CHARACTERS = { TRUE | FALSE }

Iceberg table에 대한 쿼리 결과에서 잘못된 UTF-8 문자를 유니코드 대체 문자(�)로 바꿀지 여부를 지정합니다. 이 매개변수는 외부 Iceberg 카탈로그를 사용하는 테이블에만 설정할 수 있습니다.

  • TRUE는 잘못된 UTF-8 문자를 유니코드 대체 문자로 바꿉니다.
  • FALSE는 잘못된 UTF-8 문자를 그대로 둡니다. Snowflake는 Parquet 데이터 파일에서 잘못된 UTF-8 문자를 발견하면 사용자 오류 메시지를 반환합니다.

기본값: FALSE

DEFAULT_DDL_COLLATION = 'collation_specification'

다음에 대한 기본 collation specification을 지정합니다:

  • 데이터베이스의 기존 테이블에 추가되는 모든 새 열.
  • 데이터베이스에 추가되는 새 테이블의 모든 열.

매개변수를 설정해도 기존 열의 collation specification은 변경되지 않습니다.

매개변수에 대한 자세한 내용은 을(를) 참조하세요.

DEFAULT_NOTEBOOK_COMPUTE_POOL_CPU = compute_pool_name

Notebooks를 실행하기 위해 Snowflake가 계정에 프로비저닝한 기본 CPU compute pool을 재정의하는 CPU compute pool 이름입니다. 자세한 내용은 을(를) 참조하세요.

DEFAULT_NOTEBOOK_COMPUTE_POOL_GPU = compute_pool_name

Notebooks를 실행하기 위해 Snowflake가 계정에 프로비저닝한 기본 GPU compute pool을 재정의하는 GPU compute pool 이름입니다. 자세한 내용은 을(를) 참조하세요.

OBJECT_VISIBILITY = { object_visibility_spec | PRIVILEGED }

%logo-snowflake-black% Preview Feature — 공개

모든 계정에서 사용할 수 있습니다.

데이터베이스에 있는 객체의 표시 여부를 지정합니다. 이는 discoverability of the objects를 제어하며, 명시적 액세스 권한이 없는 사용자가 객체를 찾고 액세스를 요청할 수 있게 합니다.

  • 다음 형식 중 하나로 표시 여부를 설명하는 YAML 사양:

    $$
    organization_targets:
      - all_accounts_including_external
    $$
    

    또는

    $$
    organization_targets:
      - account: 
      - account: 
      - ...
      - organization_user_group: 
      - organization_user_group: 
    $$
    

    위 구문에서:

    • all_accounts_including_external: 조직의 모든 계정에 있는 모든 사용자가 객체를 볼 수 있음을 지정합니다. 여기에는 조직 내의 모든 계정이 포함되며, reader accounts와 같이 외부 당사자에게 액세스 권한이 부여된 계정도 포함됩니다.
    • account: account_name: 지정된 계정의 모든 사용자가 객체를 볼 수 있음을 지정합니다. 여러 계정을 지정할 수 있습니다. account는 계정 이름이지 계정 로케이터가 아닙니다. 조직 이름을 제외한 계정 이름만 지정해야 합니다.
    • organization_user_group: org_user_group: 지정된 organization user grouporganization user group has been imported 조직의 모든 계정에서 객체를 볼 수 있음을 지정합니다.
  • PRIVILEGED: 현재 계정 내에서 객체에 대한 명시적 권한이 부여된 역할만 객체를 볼 수 있음을 지정합니다. 이것이 Snowflake의 기본 동작입니다.

예제는 Make database objects discoverable in Universal Search을(를) 참조하세요.

기본값: 'PRIVILEGED'

LOG_LEVEL = 'log_level'

활성 이벤트 테이블에서 수집되어 사용 가능해야 하는 메시지의 심각도 수준을 지정합니다. 지정된 수준(및 더 심각한 수준)의 메시지가 수집됩니다.

수준에 대한 자세한 내용은 을(를) 참조하세요. 로그 수준 설정에 대한 정보는 Setting levels for logging, metrics, and tracing을(를) 참조하세요.

METRIC_LEVEL = 'metric_level'

메트릭 데이터를 활성 이벤트 테이블에서 수집하고 사용할 수 있게 할지 여부를 지정합니다.

자세한 내용은 Setting levels for logging, metrics, and tracing을(를) 참조하세요.

TRACE_LEVEL = 'trace_level'

추적 이벤트가 이벤트 테이블에 수집되는 방식을 제어합니다.

수준에 대한 정보는 을(를) 참조하세요. 추적 수준 설정에 대한 정보는 Setting levels for logging, metrics, and tracing을(를) 참조하세요.

STORAGE_SERIALIZATION_POLICY = { COMPATIBLE | OPTIMIZED }

Snowflake를 카탈로그로 사용하는 Apache Iceberg™ tables에 대한 스토리지 직렬화 정책을 지정합니다.

  • COMPATIBLE: Snowflake는 타사 컴퓨팅 엔진과의 상호 운용성을 보장하는 데이터 파일 인코딩 및 압축을 수행합니다.
  • OPTIMIZED: Snowflake는 Snowflake 내에서 최상의 테이블 성능을 보장하는 데이터 파일 인코딩 및 압축을 수행합니다.

기본값: OPTIMIZED

TAG tag_name = 'tag_value' [ , tag_name = 'tag_value' , ... ]

tag 이름과 태그 문자열 값을 지정합니다.

태그 값은 항상 문자열이며, 태그 값의 최대 문자 수는 256자입니다.

문에서 태그를 지정하는 방법에 대한 정보는 을(를) 참조하세요.

CONTACT purpose = contact [ , purpose = contact ... ]

기존 객체를 하나 이상의 contacts와 연결합니다. 유효한 용도 목록은 을(를) 참조하세요.

CONTACT 속성은 같은 문에서 다른 속성과 함께 설정할 수 없습니다.

EVENT_TABLE = event_table_name

프로시저 및 UDF와 같은 데이터베이스의 객체에서 원격 측정(telemetry) 데이터를 수집해야 하는 이벤트 테이블의 정규화된 이름을 지정합니다.



자세한 내용은 을(를) 참조하세요.

이벤트 테이블을 데이터베이스에 연결하는 기능은 Enterprise Edition or higher에서 사용할 수 있어요.

CLASSIFICATION_PROFILE = 'profile_name'

데이터베이스의 모든 테이블과 뷰에 sensitive data classification을(를) 적용하기 위해 데이터베이스에 분류 프로필을 설정해요.

profile_name은 분류 프로필의 정규화된 이름(즉, CLASSIFICATION_PROFILE 클래스의 인스턴스)으로 지정해요.

COMMENT = 'string_literal'

데이터베이스에 주석을 추가하거나 기존 주석을 덮어써요.

CATALOG_SYNC = 'snowflake_open_catalog_integration_name'

Snowflake Open Catalog에 대해 구성된 카탈로그 통합의 이름을 지정해요.

지정하면 Snowflake가 데이터베이스의 Snowflake 관리 %iceberg-tm% 테이블을 %snowflakeopencatalog% 계정의 외부 카탈로그와 동기화해요. Snowflake 관리 Iceberg 테이블을 Open Catalog와 동기화하는 방법에 대한 자세한 내용은 Sync a Snowflake-managed table with Snowflake Open Catalog를 참조하세요.

이 매개 변수에 대한 자세한 내용은 을(를) 참조하세요.

기본값: 값 없음

REPLICABLE_WITH_FAILOVER_GROUPS = { 'YES' | 'NO' }

데이터베이스의 모든 스키마가 복제 대상이 될 수 있는지 여부를 지정해요. 데이터베이스에 대해 이 속성을 NO로 설정한 다음, 일부 스키마에 대해 동일한 속성을 YES로 설정하여 해당 스키마가 복제되도록 허용할 수 있어요.

이 매개 변수에 대한 자세한 내용은 을(를) 참조하세요.

기본값: 'YES'

DEFAULT_STREAMLIT_NOTEBOOK_WAREHOUSE

SQL을 사용하여 노트북을 만들 때 사용할 기본 웨어하우스를 지정해요.

BASE_LOCATION_PREFIX = 'string'

Snowflake 관리 %iceberg-tm% 테이블의 쓰기 경로에 Snowflake가 사용할 접두사를 지정해요. 자세한 내용은 Snowflake Parameters 항목에서 data and metadata directories for Iceberg tablesBASE_LOCATION_PREFIX를 참조하세요.

기본값: 값 없음

ENABLE_DATA_COMPACTION = { TRUE | FALSE }

Snowflake 관리 Apache Iceberg™ tables에서 데이터 컴팩션을 활성화할지 여부를 지정해요.

  • TRUE: Snowflake가 테이블에서 데이터 컴팩션을 수행해요.
  • FALSE: Snowflake가 테이블에서 데이터 컴팩션을 수행하지 않아요.

기본값: TRUE

자세한 내용은 을(를) 참조하세요.

DATA_QUALITY_MONITORING_SETTINGS = yaml_spec

%logo-snowflake-black% Preview Feature — Open

Enterprise Edition(이상)을 사용하는 모든 계정에서 사용할 수 있어요.

업그레이드에 대해 문의하려면 Snowflake Support에 연락하세요.

데이터베이스에서 데이터 품질 문제가 감지될 때 알림을 보낼지 여부를 제어하는 설정을 지정해요. 이 속성을 다음 형식의 dollar-quoted YAML 사양으로 설정하세요:

$$
notification:
  enabled: 
  email_recipients: [  ]
  integrations:
    - 
  cooldown_hours: 
  metadata_included: 
$$

위 구문에서:

  • enabled: true이면 데이터 품질 문제가 있을 때 알림이 전송돼요.
  • email_recipients: 각 주소가 작은따옴표로 묶인 이메일 주소 배열이에요.
  • integrations: Snowflake와 알림을 보내는 타사 메시징 서비스 간의 인터페이스를 제공하는 notification integrations 목록을 지정해요.
  • cooldown_hours: Snowflake가 다음 알림을 보내기 전에 대기하는 시간(시간)이에요. 유효한 값은 1(1시간)에서 720(30일) 사이이며, 경계 값을 포함해요.
  • metadata_included: true이면 알림에 데이터베이스 내에서 데이터 품질 문제가 발생한 개체를 식별하는 메타데이터가 포함돼요. false이면 알림은 전송되지만 문제가 발생한 개체는 식별되지 않아요.

이 매개 변수 설정에 대한 자세한 내용과 예시는 을(를) 참조하세요.

OAUTH_AUTHORIZATION_SERVER = integration_name

이 데이터베이스의 MCP 서버에 대한 권한 부여 서버로 사용할 External OAuth security integration의 이름을 지정해요.

설정하면 Snowflake는 이 데이터베이스의 MCP 서버에 대한 Protected Resource Metadata 엔드포인트에서 외부 발급자를 공지하고, 지정된 권한 부여 서버에서 발급되지 않은 OAuth 토큰을 거부해요. 이 적용은 MCP 서버 엔드포인트에 대한 OAuth 호출에만 적용돼요.

유효한 EXTERNAL_OAUTH 보안 통합이어야 해요. 통합은 SET 시점에 존재해야 하며, 나중에 통합이 삭제되거나 비활성화되면 Protected Resource Metadata 엔드포인트는 빈 authorization_servers 목록을 게시하고 Snowflake OAuth로 대체되지 않아요.

이 매개 변수는 Snowflake의 표준 계정/데이터베이스/스키마 계보 상속을 따라요. 데이터베이스 수준 값은 계정 수준 값을 재정의하고, 이 데이터베이스 내의 스키마 수준 값은 데이터베이스 수준 값을 재정의해요.

기본값: 값 없음 (계정에서 상속하거나, 모든 수준에서 설정되지 않은 경우 Snowflake OAuth를 사용함)

자세한 내용은 Configure External OAuth authentication for MCP servers을(를) 참조하세요.

OAUTH_SCOPES_SUPPORTED = 'comma_separated_scopes'

이 데이터베이스의 MCP 서버에 대한 Protected Resource Metadata 엔드포인트에서 공지할 OAuth 범위의 쉼표로 구분된 목록을 지정해요.

허용되는 범위 값과 SET 시간 검증 규칙은 OAUTH_SCOPES_SUPPORTED를 참조하세요.


OAUTH_AUTHORIZATION_SERVER도 설정되어 있으면, 공개되는 스코프는 이 파라미터에 있는 것들이에요. OAUTH_AUTHORIZATION_SERVER 없이 OAUTH_SCOPES_SUPPORTED만 설정되어 있으면, Snowflake는 지정된 스코프를 Snowflake OAuth와 함께 사용해요.

이 파라미터는 Snowflake의 표준 계정/데이터베이스/스키마 계층 상속을 따라요. 데이터베이스 수준 값은 계정 수준 값을 재정의하고, 이 데이터베이스 내의 스키마 수준 값은 데이터베이스 수준 값을 재정의해요.

기본값: 값 없음(계정에서 상속). Snowflake OAuth에서 모든 수준에 설정되지 않으면 session:role:all을 공개해요. OAUTH_AUTHORIZATION_SERVER가 설정된 상태에서 설정되지 않으면, 통합에 EXTERNAL_OAUTH_ANY_ROLE_MODE = ENABLE 또는 ENABLE_FOR_PRIVILEGE가 있을 때 session:role-any를 공개하고, 그렇지 않으면 빈 목록을 공개해요.

자세한 내용은 Configure External OAuth authentication for MCP servers를 참조하세요.

UNSET ...

데이터베이스에서 설정을 해제할 하나(또는 여러 개)의 속성 및/또는 파라미터를 지정하며, 기본값으로 재설정해요:

  • DATA_RETENTION_TIME_IN_DAYS
  • MAX_DATA_EXTENSION_TIME_IN_DAYS
  • EXTERNAL_VOLUME
  • CATALOG
  • ICEBERG_DEFAULT_DDL_COLLATION
  • ICEBERG_VERSION_DEFAULT
  • ICEBERG_MERGE_ON_READ_BEHAVIOR
  • ENABLE_ICEBERG_MERGE_ON_READ
  • DEFAULT_DDL_COLLATION
  • TAG tag_name [ , tag_name ... ]
  • DEFAULT_NOTEBOOK_COMPUTE_POOL_CPU
  • DEFAULT_NOTEBOOK_COMPUTE_POOL_GPU
  • STORAGE_SERIALIZATION_POLICY
  • EVENT_TABLE = event_table_name
  • COMMENT
  • CATALOG_SYNC
  • REPLICABLE_WITH_FAILOVER_GROUPS
  • BASE_LOCATION_PREFIX
  • DEFAULT_STREAMLIT_NOTEBOOK_WAREHOUSE
  • CLASSIFICATION_PROFILE
  • CONTACT purpose
  • ENABLE_DATA_COMPACTION
  • OAUTH_AUTHORIZATION_SERVER
  • OAUTH_SCOPES_SUPPORTED

단일 ALTER 문으로 여러 속성/파라미터를 재설정할 수 있어요. 단, 각 속성/파라미터는 쉼표로 구분해야 해요. 속성/파라미터를 재설정할 때는 이름만 지정해야 하며, 값을 지정하면 오류가 반환돼요.

같은 문에서 CONTACT 속성을 다른 속성과 함께 설정 해제할 수 없어요.

SET FEATURE POLICY policy_name [ FORCE ]

데이터베이스에 feature policy를 적용해요. 기능 정책은 데이터베이스 내에서 생성할 수 있는 객체 유형을 제어해요.

FORCE를 사용하면 기존 정책을 먼저 설정 해제하지 않고도 교체할 수 있어요.

계정에 APPLY FEATURE POLICY 권한이 필요해요.

UNSET FEATURE POLICY

데이터베이스에서 기능 정책을 제거해요. 설정을 해제하면, 계정 수준의 FOR ALL DATABASES 또는 FOR ALL PERSONAL DATABASES 정책이 설정되어 있는 경우 이 데이터베이스에 적용돼요. 자세한 내용은 Feature policy precedence를 참조하세요.

UNSET DCM PROJECT

현재 데이터베이스를 관리하는 DCM project에서 데이터베이스를 분리해요. 이 명령은 데이터베이스를 삭제하지 않고 데이터베이스와 %dcm-object% 간의 연결을 제거해요. 자세한 내용은 를 참조하세요.

데이터베이스 복제 및 장애 조치 파라미터

지원되는 리전

이 기능은 중화인민공화국에서는 사용할 수 없어요.

이 섹션에서는 account replication feature와 다른 제한된 데이터베이스 복제 기능을 설명해요. Snowflake는 데이터베이스를 복제하고 장애 조치하기 위해 계정 복제 기능을 사용할 것을 강력히 권장해요.

ENABLE REPLICATION TO ACCOUNTS account_identifier [ , account_identifier ... ]

로컬 데이터베이스를 복제의 기본(primary) 데이터베이스로 승격해요. 기본 데이터베이스는 하나 이상의 계정에 복제될 수 있으며, 해당 계정의 사용자는 각 보조(즉, 복제본) 데이터베이스의 객체를 쿼리할 수 있어요.

또는 기존 기본 데이터베이스를 수정하여 데이터베이스의 복제본을 저장할 수 있는 계정 목록에 추가하거나 제거할 수 있어요.

조직에서 이 데이터베이스의 복제본을 저장할 수 있는 계정의 쉼표로 구분된 목록을 제공하세요.

account_identifier

계정의 고유 식별자예요. 기본 식별자는 organization_name.account_name이에요. 조직에서 복제가 활성화된 계정 목록을 보려면 SHOW REPLICATION ACCOUNTS를 쿼리하세요.

레거시 계정 로케이터도 계정 식별자로 사용할 수 있지만, 향후 작동하지 않을 수 있으므로 사용을 권장하지 않아요. 계정 로케이터를 계정 식별자로 사용하는 방법에 대한 자세한 내용은 Database Replication and Failover Usage Notes를 참조하세요.

IGNORE EDITION CHECK

다음 시나리오 중 하나에서 하위 에디션의 계정으로 데이터를 복제할 수 있게 해줘요:

  • 기본 데이터베이스가 Business Critical(또는 그 이상) 계정에 있지만 복제가 승인된 계정 중 하나 이상이 하위 에디션에 있는 경우. Business Critical Edition은 매우 민감한 데이터를 보유한 Snowflake 계정을 위한 것이에요.
  • 기본 데이터베이스가 Business Critical(또는 그 이상) 계정에 있고, HIPAA 및 HITRUST 규정에 따라 계정에 PHI 데이터를 저장하기 위한 서명된 업무 제휴 계약이 체결되어 있지만, 복제가 승인된 계정 중 하나 이상에 대해 해당 계약이 체결되지 않은 경우(해당 계정이 Business Critical(또는 그 이상) 계정인지 여부와 관계없이).

두 시나리오 모두 기본적으로 금지되어 있어요. 이는 Business Critical(또는 그 이상) 계정의 계정 관리자가 실수로 민감한 데이터를 하위 에디션의 계정으로 복제하는 것을 방지하기 위한 것이에요.

DISABLE REPLICATION [ TO ACCOUNTS account_identifier [ , account_identifier ... ] ]

이 기본(primary) 데이터베이스에 대한 복제를 비활성화해요. 즉, 다른 계정에 있는 이 데이터베이스의 복제본(즉, 보조(secondary) 데이터베이스)은 더 이상 새로 고칠 수 없게 돼요. 보조 데이터베이스는 계속 기본 데이터베이스에 연결된 상태로 남아 있지만, 보조 데이터베이스를 새로 고치려는 요청은 거부돼요.

기본 데이터베이스에 대한 복제를 비활성화해도 같은 계정으로의 복제는 막지 않는다는 점에 유의하세요. 따라서 해당 데이터베이스는 계속 SHOW REPLICATION DATABASES 출력에 표시돼요.

선택적으로 조직 내 계정 목록을 쉼표로 구분해 지정하면, 해당 계정에서만 이 데이터베이스에 대한 복제를 비활성화할 수 있어요.

account_identifier

계정의 고유 식별자예요. 기본 식별자는 organization_name.account_name이에요. 조직에서 복제가 활성화된 계정 목록을 보려면 SHOW REPLICATION ACCOUNTS를 조회하세요.

레거시 계정 로케이터도 계정 식별자로 사용할 수 있지만, 나중에 작동하지 않을 수 있으므로 사용을 권장하지 않아요. 계정 로케이터를 계정 식별자로 사용하는 방법에 대한 자세한 내용은 Database Replication and Failover Usage Notes를 참조하세요.

REFRESH

기본 데이터베이스의 스냅샷에서 보조 데이터베이스를 새로 고쳐요. 스냅샷에는 객체와 데이터의 변경 사항이 포함돼요.

ENABLE FAILOVER TO ACCOUNTS account_identifier [ , account_identifier ... ]

조직 내에서 이 기본 데이터베이스의 복제본이 기본 데이터베이스 역할을 하도록 승격될 수 있는 계정 목록을 쉼표로 구분해 지정해요.

account_identifier

계정의 고유 식별자예요. 기본 식별자는 organization_name.account_name이에요. 조직에서 복제가 활성화된 계정 목록을 보려면 SHOW REPLICATION ACCOUNTS를 조회하세요.

레거시 계정 로케이터도 계정 식별자로 사용할 수 있지만, 나중에 작동하지 않을 수 있으므로 사용을 권장하지 않아요. 계정 로케이터를 계정 식별자로 사용하는 방법에 대한 자세한 내용은 Database Replication and Failover Usage Notes를 참조하세요.

DISABLE FAILOVER [ TO ACCOUNTS account_identifier [ , account_identifier ... ] ]

이 기본 데이터베이스에 대한 장애 조치(failover)를 비활성화해요. 즉, 이 데이터베이스의 복제본(보조 데이터베이스)은 기본 데이터베이스 역할을 하도록 승격될 수 없어요.

선택적으로 조직 내 계정 목록을 쉼표로 구분해 지정하면, 해당 계정에서만 이 데이터베이스에 대한 장애 조치를 비활성화할 수 있어요.

account_identifier

계정의 고유 식별자예요. 기본 식별자는 organization_name.account_name이에요. 조직에서 복제가 활성화된 계정 목록을 보려면 SHOW REPLICATION ACCOUNTS를 조회하세요.

레거시 계정 로케이터도 계정 식별자로 사용할 수 있지만, 나중에 작동하지 않을 수 있으므로 사용을 권장하지 않아요. 계정 로케이터를 계정 식별자로 사용하는 방법에 대한 자세한 내용은 Database Replication and Failover Usage Notes를 참조하세요.

PRIMARY

지정된 보조(복제본) 데이터베이스를 기본 데이터베이스 역할을 하도록 승격해요. 승격되면 데이터베이스는 쓰기 가능 상태가 돼요. 동시에 이전 기본 데이터베이스는 읽기 전용 보조 데이터베이스가 돼요.

Usage notes

  • 데이터베이스 이름을 바꾸려면 작업을 수행하는 역할에 CREATE DATABASE 전역 권한과 데이터베이스에 대한 OWNERSHIP 권한이 있어야 해요.
  • 두 데이터베이스를 교체하려면 작업을 수행하는 역할에 두 데이터베이스 모두에 대한 OWNERSHIP 권한이 있어야 해요.
  • 주석을 업데이트하려면 작업을 수행하는 역할에 데이터베이스에 대한 MODIFY 권한이 부여되거나 상속되어야 해요.
  • Iceberg 테이블이 준수하는 %iceberg-tm% 사양의 기본 버전을 지정하려면 데이터베이스에 대한 OWNERSHIP 권한이 부여된 역할을 사용해야 해요.
  • 메타데이터 관련:

고객은 Snowflake 서비스를 사용할 때 메타데이터에 개인 데이터(User 객체에 대한 데이터 제외), 민감한 데이터, 수출 통제 데이터 또는 기타 규제 대상 데이터를 입력하지 않도록 해야 해요. 자세한 내용은 Metadata fields in Snowflake를 참조하세요.

Database replication and failover usage notes

지원 지역

이 기능은 중화인민공화국에서는 사용할 수 없어요.

이 섹션에서는 계정 복제 기능과 다른 제한된 데이터베이스 복제 기능에 대해 설명해요. Snowflake는 데이터베이스 복제 및 장애 조치에 계정 복제 기능을 사용할 것을 강력히 권장해요.

  • 계정 관리자(ACCOUNTADMIN 역할을 가진 사용자)만 데이터베이스 복제 및 장애 조치를 활성화하고 관리할 수 있어요.

  • 기본 데이터베이스가 보조 데이터베이스로 처음 복제될 때 기본 10TB 크기 제한이 적용돼요. 크기 제한을 변경하거나 제거하려면 계정 수준에서 파라미터를 설정하세요.

    참고로 보조 데이터베이스의 이후 새로 고침에는 현재 기본 크기 제한이 적용되지 않아요.

  • 계정을 식별하는 기본 방법은 조직 이름과 계정 이름을 계정 식별자로 사용하는 거예요. 대신 레거시 계정 로케이터를 사용하려면 를 참조하세요.

General examples

데이터베이스 db1의 이름을 db2로 바꾸기:

ALTER DATABASE IF EXISTS db1 RENAME TO db2;

Database replication examples

지원 지역

이 기능은 중화인민공화국에서는 사용할 수 없어요.

이 섹션에서는 계정 복제 기능과 다른 제한된 데이터베이스 복제 기능에 대해 설명해요. Snowflake는 데이터베이스 복제 및 장애 조치에 계정 복제 기능을 사용할 것을 강력히 권장해요.

복제 그룹 또는 장애 조치 그룹을 사용하여 단일 데이터베이스를 복제하고 장애 조치할 수 있어요. 예제는 다음 중 하나를 참조하세요:

  • .
  • .

더 알아보기 (Learn more)