ALTER APPLICATION SET SPECIFICATIONS

为 Snowflake Native App ​创建或更新一个 应用程序规范

备注

此命令只能由一个 Snowflake Native App 使用。

另请参阅:

ALTER APPLICATIONALTER APPLICATION ... { APPROVE | DECLINE} SPECIFICATIONALTER APPLICATION DROP SPECIFICATION

语法

外部访问集成

ALTER APPLICATION SET SPECIFICATION <app_spec_name>
  TYPE = EXTERNAL_ACCESS
  LABEL = '<label>'
  DESCRIPTION = '<description>'
  { HOST_PORTS | PRIVATE_HOST_PORTS } = ( '<value>' [, '<value>', ... ] )
Copy

安全集成 (CLIENT_CREDENTIALS)

ALTER APPLICATION SET SPECIFICATION <app_spec_name>
    TYPE = SECURITY_INTEGRATION
    LABEL = '<string_literal>'
    DESCRIPTION = '<string_literal>'
    OAUTH_TYPE = 'CLIENT_CREDENTIALS'
    OAUTH_TOKEN_ENDPOINT = '<string_literal>'
    OAUTH_ALLOWED_SCOPES = ( '<scope>' [ , '<scope>' ... ] );
Copy

安全集成 (AUTHORIZATION_CODE)

ALTER APPLICATION SET SPECIFICATION <app_spec_name>
  TYPE = SECURITY_INTEGRATION
  LABEL = '<string_literal>'
  DESCRIPTION = '<string_literal>'
  OAUTH_TYPE = 'AUTHORIZATION_CODE'
  OAUTH_TOKEN_ENDPOINT = '<string_literal>'
  [ OAUTH_AUTHORIZATION_ENDPOINT = '<string_literal>' ]
  [ OAUTH_ALLOWED_SCOPES = ( '<scope>' [ , '<scope>' ... ] ) ];
Copy

安全集成 (JWT_BEARER)

ALTER APPLICATION SET SPECIFICATION <app_spec_name>
  TYPE = SECURITY_INTEGRATION
  LABEL = '<string_literal>'
  DESCRIPTION = '<string_literal>'
  OAUTH_TYPE = 'JWT_BEARER'
  OAUTH_TOKEN_ENDPOINT = '<string_literal>'
  [ OAUTH_AUTHORIZATION_ENDPOINT = '<string_literal>' ]
  [ OAUTH_ALLOWED_SCOPES = ( '<scope>' [ , '<scope>' ... ] ) ];
Copy

列表

ALTER APPLICATION SET SPECIFICATION <app_spec_name>
  TYPE = LISTING
  LABEL = '<string_literal>'
  DESCRIPTION = '<string_literal>'
  TARGET_ACCOUNTS = '<account_list>'
  LISTING = <listing_name>
  [ AUTO_FULFILLMENT_REFRESH_SCHEDULE = '<schedule>' ]
Copy

一般参数

app_spec_name

应用程序规范 的标识符。

TYPE = {EXTERNAL_ACCESS | SECURITY_INTEGRATION | LISTING}

指定应用程序规范的类型。支持的值包括:

重要

应用程序规范的类型一经创建便无法更改。尝试更改类型将导致错误。

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(外部 API 身份验证)

OAUTH_TOKEN_ENDPOINT = 'string_literal'

指定客户端用于获取访问令牌的令牌端点,方法是提供其授权授予或刷新令牌。有关更多信息,请参阅 CREATE SECURITY INTEGRATION(外部 API 身份验证)

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

指定以逗号分隔的范围列表,每个范围放在单引号内,在 OAuth 客户端凭证流期间由集成中具备 USAGE 的角色通过 OAuth 发出请求时使用。有关更多信息,请参阅 CREATE SECURITY INTEGRATION(外部 API 身份验证)

OAUTH_ACCESS_TOKEN_VALIDITY = integer

指定由 OAuth 服务器颁发的 OAuth 访问令牌的默认生命周期(以秒为单位)。有关更多信息,请参阅 CREATE SECURITY INTEGRATION(外部 API 身份验证)

安全集成参数 - AUTHORIZATION_CODE

OAUTH_TYPE = 'AUTHORIZATION_CODE'

指定用于外部 API 身份验证的安全集成类型。有关更多信息,请参阅 CREATE SECURITY INTEGRATION(外部 API 身份验证)

OAUTH_TOKEN_ENDPOINT = 'string_literal'

指定客户端用于获取访问令牌的令牌端点,方法是提供其授权授予或刷新令牌。有关更多信息,请参阅 CREATE SECURITY INTEGRATION(外部 API 身份验证)

OAUTH_AUTHORIZATION_ENDPOINT = 'string_literal'

指定用于对外部服务进行身份验证的 URL。有关更多信息,请参阅 CREATE SECURITY INTEGRATION(外部 API 身份验证)

OAUTH_ACCESS_TOKEN_VALIDITY = integer

指定由 OAuth 服务器颁发的 OAuth 访问令牌的默认生命周期(以秒为单位)。有关更多信息,请参阅 CREATE SECURITY INTEGRATION(外部 API 身份验证)

OAUTH_REFRESH_TOKEN_VALIDITY = integer

指定由 OAuth 服务器颁发的 OAuth 刷新令牌的默认生命周期(以秒为单位)。有关更多信息,请参阅 CREATE SECURITY INTEGRATION(外部 API 身份验证)

安全集成参数 - JWT_BEARER

OAUTH_TYPE = 'JWT_BEARER'

指定用于外部 API 身份验证的安全集成类型。有关更多信息,请参阅 CREATE SECURITY INTEGRATION(外部 API 身份验证)

OAUTH_TOKEN_ENDPOINT = 'string_literal'

指定客户端用于获取访问令牌的令牌端点,方法是提供其授权授予或刷新令牌。有关更多信息,请参阅 CREATE SECURITY INTEGRATION(外部 API 身份验证)

OAUTH_AUTHORIZATION_ENDPOINT = 'string_literal'

指定用于对外部服务进行身份验证的 URL。有关更多信息,请参阅 CREATE SECURITY INTEGRATION(外部 API 身份验证)

OAUTH_REFRESH_TOKEN_VALIDITY = integer

指定由 OAuth 服务器颁发的 OAuth 刷新令牌的默认生命周期(以秒为单位)。有关更多信息,请参阅 CREATE SECURITY INTEGRATION(外部 API 身份验证)

Listing parameters

TARGET_ACCOUNTS = 'account_list'

指定目标账户的单引号字符串,用逗号分隔,不带空格。必须按格式 OrgName.AccountName 指定每个账户;例如:'ProviderOrg.ProviderAccount,PartnerOrg.PartnerAccount'。规范获得批准后,这些账户将添加到列表中。如果被拒绝,所有账户都将从列表中移除。

LISTING = listing_name

指定应用程序创建的外部列表的标识符。该列表必须已经存在,并且必须由附加了共享的应用程序创建。在应用程序规范中设置列表后,列表名称将无法更改。

AUTO_FULFILLMENT_REFRESH_SCHEDULE = 'schedule'

可选。指定跨区域数据共享的刷新计划。跨区域共享数据时需要此参数。该值可以用两种格式指定:

  • num MINUTE:选择使用 时默认使用的角色和仓库。分钟数,最短为 10 分钟,最长为 11,520 分钟(8 天)。

  • USING CRON expression time_zone:选择使用 时默认使用的角色和仓库。用于刷新的带时区的 Cron 表达式。

使用说明

  • To use this command, providers must ensure that the manifest file of the app uses 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');
Copy

为 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');
Copy

通过列表实现的数据共享应用规范:

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';
Copy
语言: 中文