애플리케이션 사양 변경하기

애플리케이션 사양 변경하기 (ALTER APPLICATION SET SPECIFICATION)

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

%native-app%에 대한 앱 사양을 생성하거나 업데이트해요.

이 명령은 %native-app%만 사용할 수 있어요.

참조:

ALTER APPLICATION, ALTER APPLICATION ... { APPROVE | DECLINE} SPECIFICATION, ALTER APPLICATION DROP SPECIFICATION

출처: 문서

본문

구문

외부 액세스 통합

ALTER APPLICATION SET SPECIFICATION 
  TYPE = EXTERNAL_ACCESS
  LABEL = ''
  DESCRIPTION = ''
  { HOST_PORTS | PRIVATE_HOST_PORTS } = ( '' [, '', ... ] )

보안 통합 (CLIENT_CREDENTIALS)

ALTER APPLICATION SET SPECIFICATION 
    TYPE = SECURITY_INTEGRATION
    LABEL = ''
    DESCRIPTION = ''
    OAUTH_TYPE = 'CLIENT_CREDENTIALS'
    OAUTH_TOKEN_ENDPOINT = ''
    OAUTH_ALLOWED_SCOPES = ( '' [ , '' ... ] );

보안 통합 (AUTHORIZATION_CODE)

ALTER APPLICATION SET SPECIFICATION 
  TYPE = SECURITY_INTEGRATION
  LABEL = ''
  DESCRIPTION = ''
  OAUTH_TYPE = 'AUTHORIZATION_CODE'
  OAUTH_TOKEN_ENDPOINT = ''
  [ OAUTH_AUTHORIZATION_ENDPOINT = '' ]
  [ OAUTH_ALLOWED_SCOPES = ( '' [ , '' ... ] ) ];

보안 통합 (JWT_BEARER)

ALTER APPLICATION SET SPECIFICATION 
  TYPE = SECURITY_INTEGRATION
  LABEL = ''
  DESCRIPTION = ''
  OAUTH_TYPE = 'JWT_BEARER'
  OAUTH_TOKEN_ENDPOINT = ''
  [ OAUTH_AUTHORIZATION_ENDPOINT = '' ]
  [ OAUTH_ALLOWED_SCOPES = ( '' [ , '' ... ] ) ];

Listing

ALTER APPLICATION SET SPECIFICATION 
  TYPE = LISTING
  LABEL = ''
  DESCRIPTION = ''
  TARGET_ACCOUNTS = ''
  LISTING = 
  [ AUTO_FULFILLMENT_REFRESH_SCHEDULE = '' ]

앱 간 통신

ALTER APPLICATION SET SPECIFICATION 
  TYPE = CONNECTION
  LABEL = ''
  DESCRIPTION = ''
  SERVER_APPLICATION = 
  SERVER_APPLICATION_ROLES = (  [ ,  ... ] );

Setting

ALTER APPLICATION SET SPECIFICATION 
  TYPE = SETTING
  LABEL = ''
  DESCRIPTION = ''
  SETTING = 
  [ VALUE = '' ]

일반 매개변수

app_spec_name

app specification의 식별자예요.

TYPE = \{EXTERNAL_ACCESS | SECURITY_INTEGRATION | LISTING | CONNECTION | SETTING}\}

앱 사양의 유형을 지정해요. 지원되는 값은 다음과 같아요.

앱 사양의 유형은 생성된 후에는 변경할 수 없어요. 유형을 변경하려고 하면 오류가 발생해요.

LABEL = 'label'

앱 사양의 라벨을 지정해요. 이 라벨은 소비자에게 표시되는 앱 사양의 이름이에요. 각 앱 사양은 고유한 라벨을 가져야 해요.

라벨만 변경하면 새로운 승인 요청이 트리거되지 않아요. 소비자 승인이 필요하다면 앱 사양 정의(예: HOST_PORTS, OAUTH_TOKEN_ENDPOINT, TARGET_ACCOUNTS)도 함께 변경해야 해요.

DESCRIPTION = 'description'

앱 사양에 대한 설명을 지정해요. Snowflake는 앱 사양 유형과 앱이 왜 이를 필요로 하는지에 대한 정보를 포함할 것을 권장해요.

설명만 변경하면 새로운 승인 요청이 트리거되지 않아요. 소비자 승인이 필요하다면 앱 사양 정의(예: HOST_PORTS, OAUTH_TOKEN_ENDPOINT, TARGET_ACCOUNTS)도 함께 변경해야 해요.

외부 액세스 통합 매개변수

{HOST_PORTS | PRIVATE_HOST_PORTS} = ( 'value' [ , 'value', ... ] )

앱이 연결할 수 있는 호스트 포트 또는 프라이빗 호스트 포트 목록을 지정해요. 이 포트들은 외부 액세스 통합에 사용돼요.

보안 통합 매개변수 - CLIENT_CREDENTIALS

OAUTH_TYPE = 'CLIENT_CREDENTIALS'

외부 API 인증을 위한 보안 통합 유형을 지정해요. 자세한 내용은 CREATE SECURITY INTEGRATION (External API Authentication)을 참조하세요.

OAUTH_TOKEN_ENDPOINT = 'string_literal'

클라이언트가 인증 부여(authorization grant) 또는 갱신 토큰(refresh token)을 제시하여 액세스 토큰을 얻는 데 사용하는 토큰 엔드포인트를 지정해요. 자세한 내용은 CREATE SECURITY INTEGRATION (External API Authentication)을 참조하세요.

OAUTH_ALLOWED_SCOPES = ( 'scope' [ , 'scope' ... ] )

OAuth 클라이언트 자격 증명 흐름 중 통합에 대한 USAGE 권한이 있는 역할이 OAuth로 요청할 때 사용할 범위 목록을 지정해요. 각 범위는 작은따옴표로 묶고 쉼표로 구분해요. 자세한 내용은 CREATE SECURITY INTEGRATION (External API Authentication)을 참조하세요.

OAUTH_ACCESS_TOKEN_VALIDITY = integer

OAuth 서버가 발급한 OAuth 액세스 토큰의 기본 수명(초)을 지정해요. 자세한 내용은 CREATE SECURITY INTEGRATION (External API Authentication)을 참조하세요.

보안 통합 매개변수 - AUTHORIZATION_CODE

OAUTH_TYPE = 'AUTHORIZATION_CODE'

외부 API 인증을 위한 보안 통합 유형을 지정해요. 자세한 내용은 CREATE SECURITY INTEGRATION (External API Authentication)을 참조하세요.

OAUTH_TOKEN_ENDPOINT = 'string_literal'

클라이언트가 인증 부여(authorization grant) 또는 갱신 토큰(refresh token)을 제시하여 액세스 토큰을 얻는 데 사용하는 토큰 엔드포인트를 지정해요. 자세한 내용은 CREATE SECURITY INTEGRATION (External API Authentication)을 참조하세요.

OAUTH_AUTHORIZATION_ENDPOINT = 'string_literal'

외부 서비스에 인증하기 위한 URL을 지정해요. 자세한 내용은 CREATE SECURITY INTEGRATION (External API Authentication)을 참조하세요.

OAUTH_ACCESS_TOKEN_VALIDITY = integer

OAuth 서버가 발급한 OAuth 액세스 토큰의 기본 수명(초)을 지정해요. 자세한 내용은 CREATE SECURITY INTEGRATION (External API Authentication)을 참조하세요.

OAUTH_REFRESH_TOKEN_VALIDITY = integer

OAuth 서버가 발급한 OAuth 갱신 토큰의 기본 수명(초)을 지정해요. 자세한 내용은 CREATE SECURITY INTEGRATION (External API Authentication)을 참조하세요.

보안 통합 매개변수 - JWT_BEARER

OAUTH_TYPE = 'JWT_BEARER'

외부 API 인증을 위한 보안 통합 유형을 지정해요. 자세한 내용은 CREATE SECURITY INTEGRATION (External API Authentication)을 참조하세요.

OAUTH_TOKEN_ENDPOINT = 'string_literal'

클라이언트가 인증 부여(authorization grant) 또는 갱신 토큰(refresh token)을 제시하여 액세스 토큰을 얻는 데 사용하는 토큰 엔드포인트를 지정해요. 자세한 내용은 CREATE SECURITY INTEGRATION (External API Authentication)을 참조하세요.

OAUTH_AUTHORIZATION_ENDPOINT = 'string_literal'

외부 서비스에 인증하기 위한 URL을 지정해요. 자세한 내용은 CREATE SECURITY INTEGRATION (External API Authentication)을 참조하세요.

OAUTH_REFRESH_TOKEN_VALIDITY = integer

OAuth 서버가 발급한 OAuth 갱신 토큰의 기본 수명(초)을 지정해요. 자세한 내용은 CREATE SECURITY INTEGRATION (External API Authentication)을 참조하세요.

OAuth 서버에서 발급하는 OAuth 리프레시 토큰의 기본 수명(초)을 지정합니다. 자세한 내용은 CREATE SECURITY INTEGRATION (External API Authentication)을 참조하세요.

리스팅 매개변수

TARGET_ACCOUNTS = 'account_list'

쉼표로 구분되고 공백이 없는 작은따옴표로 묶인 대상 계정 문자열을 지정합니다. 각 계정은 OrgName.AccountName 형식으로 지정해야 합니다. 예: 'ProviderOrg.ProviderAccount,PartnerOrg.PartnerAccount'. 사양이 승인되면 이 계정들이 리스팅에 추가됩니다. 거부되면 모든 계정이 리스팅에서 제거됩니다.

LISTING = listing_name

앱이 생성한 외부 리스팅의 식별자를 지정합니다. 리스팅은 이미 존재해야 하며, 앱이 share(공유)를 연결하여 생성한 것이어야 합니다. 앱 사양에서 리스팅이 설정된 후에는 리스팅 이름을 변경할 수 없습니다.

AUTO_FULFILLMENT_REFRESH_SCHEDULE = 'schedule'

선택 사항입니다. 리전 간 데이터 공유를 위한 새로 고침 일정을 지정합니다. 이 매개변수는 리전 간에 데이터를 공유할 때 필요합니다. 값은 다음 두 가지 형식으로 지정할 수 있습니다.

  • num MINUTE: 분 단위의 숫자입니다. 최소 10분, 최대 11,520분(8일)입니다.
  • USING CRON expression time_zone: 새로 고침을 위한 시간대가 포함된 Cron 표현식입니다.

앱 간 통신 매개변수

SERVER_APPLICATION = server_app

연결할 서버 애플리케이션의 이름입니다. 다음 작업은 지원되지 않습니다.

  • 기존 사양에서 이 설정을 업데이트하는 작업.
  • 동일한 서버 애플리케이션을 대상으로 하는 사양이 둘 이상인 경우.

SERVER_APPLICATION_ROLES = ( app_role1 [ , app_role2 ... ] )

이 애플리케이션에 부여할 서버 애플리케이션의 애플리케이션 역할 목록을 쉼표로 구분하여 지정합니다.

설정 매개변수

SETTING = setting_name

요청할 계정 수준 설정의 이름을 지정합니다. 앱 사양이 생성된 후에는 값을 변경할 수 없습니다. 지원되는 값은 다음과 같습니다.

  • ENABLE_UNLOAD_TO_INTERNAL_STAGES: 승인되면 PREVENT_UNLOAD_TO_INTERNAL_STAGES 계정 매개변수가 활성화된 경우에도 앱이 애플리케이션 내부에 포함된 내부 스테이지로 데이터를 복사할 수 있습니다.

VALUE = 'value'

설정 값을 지정합니다. 부울 설정의 경우 이 매개변수는 생략할 수 있으며(값은 기본적으로 'true'), 지정하는 경우 'true'여야 합니다. 부울이 아닌 설정의 경우 이 매개변수는 필수입니다.

사용 참고 사항

  • 이 명령을 사용하려면 공급자는 앱의 매니페스트 파일이 manifest_version: 2를 사용하는지 확인해야 합니다.

예제

외부 액세스를 위한 앱 사양을 생성합니다:

ALTER APPLICATION SET SPECIFICATION eai_spec
  TYPE = EXTERNAL_ACCESS
  LABEL = 'External API Access'
  DESCRIPTION = 'Connect to external weather API'
  HOST_PORTS = ('api.weather.com:443', 'api.openweather.org:443');

OAuth 보안 통합을 위한 앱 사양을 생성합니다:

ALTER APPLICATION SET SPECIFICATION oauth_spec
  TYPE = SECURITY_INTEGRATION
  LABEL = 'OAuth Integration'
  DESCRIPTION = 'Connect to Microsoft Graph API'
  OAUTH_TYPE = 'CLIENT_CREDENTIALS'
  OAUTH_TOKEN_ENDPOINT = 'https://login.microsoftonline.com/YOUR_TENANT_ID/oauth2/v2.0/token'
  OAUTH_ALLOWED_SCOPES = ('https://graph.microsoft.com/.default');

리스팅을 통한 데이터 공유를 위한 앱 사양을 생성합니다:

ALTER APPLICATION SET SPECIFICATION shareback_spec
  TYPE = LISTING
  LABEL = 'Telemetry Data Sharing'
  DESCRIPTION = 'Share telemetry and usage data with provider'
  TARGET_ACCOUNTS = 'ProviderOrg.ProviderAccount,PartnerOrg.PartnerAccount'
  LISTING = telemetry_listing
  AUTO_FULFILLMENT_REFRESH_SCHEDULE = '720 MINUTE';

동작 설정을 요청하는 앱 사양을 생성합니다:

ALTER APPLICATION SET SPECIFICATION unload_setting_spec
  TYPE = SETTING
  LABEL = 'Write to internal stages'
  DESCRIPTION = 'Allows the app to copy data to internal stages'
  SETTING = ENABLE_UNLOAD_TO_INTERNAL_STAGES;

더 알아보기 (Learn more)