ALTER APPLICATION SET SPECIFICATIONS¶
为 Snowflake Native App 创建或更新一个 应用程序规范。
备注
此命令只能由一个 Snowflake Native App 使用。
- 另请参阅:
ALTER APPLICATION、ALTER APPLICATION ... { APPROVE | DECLINE} SPECIFICATION、ALTER APPLICATION DROP SPECIFICATION
语法¶
外部访问集成¶
ALTER APPLICATION SET SPECIFICATION <app_spec_name>
TYPE = EXTERNAL_ACCESS
LABEL = '<label>'
DESCRIPTION = '<description>'
{ HOST_PORTS | PRIVATE_HOST_PORTS } = ( '<value>' [, '<value>', ... ] )
安全集成 (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>' ... ] );
安全集成 (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>' ... ] ) ];
列表¶
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>' ]
一般参数¶
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 身份验证)。
安全集成参数 - 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');
为 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';