ALTER APPLICATION SET SPECIFICATIONS¶
Erstellt oder aktualisiert eine App-Spezifikation für eine Snowflake Native App.
Bemerkung
Dieser Befehl kann nur von einer Snowflake Native App verwendet werden:
- Siehe auch:
ALTER APPLICATION, ALTER APPLICATION … { APPROVE | DECLINE} SPECIFICATION, ALTER APPLICATION DROP SPECIFICATION
Syntax¶
Integration für externen Zugriff¶
ALTER APPLICATION SET SPECIFICATION <app_spec_name>
TYPE = EXTERNAL_ACCESS
LABEL = '<label>'
DESCRIPTION = '<description>'
{ HOST_PORTS | PRIVATE_HOST_PORTS } = ( '<value>' [, '<value>', ... ] )
Sicherheitsintegration (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>' ... ] );
Sicherheitsintegration (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>' ... ] ) ];
Listing¶
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>' ]
Allgemeine Parameter¶
app_spec_nameBezeichner für die App-Spezifikation.
TYPE = {EXTERNAL_ACCESS | SECURITY_INTEGRATION | LISTING}Gibt den Typ der App-Spezifikation an. Folgende Werte werden unterstützt:
LABEL = 'label'Gibt eine Bezeichnung für die App-Spezifikation an. Diese Bezeichnung ist der Name der App-Spezifikation, der für den Verbraucher sichtbar ist. Jede App-Spezifikation muss eine eindeutige Bezeichnung haben.
DESCRIPTION = 'description'Gibt eine Beschreibung der App-Spezifikation. Snowflake empfiehlt, Informationen über den Typ der App-Spezifikation anzugeben, und warum dieser von der App benötigt wird.
Parameter für die Integration für den externen Zugriff¶
HOST_PORTS | PRIVATE_HOST_PORTS = ( 'value' [ , 'value', ... ] )Gibt eine Liste von Host-Ports oder privaten Host-Ports an, mit denen sich die App verbinden kann. Diese Ports werden von Integrationen für den externen Zugriff verwendet.
Sicherheitsintegrationsparameter – CLIENT_CREDENTIALS¶
OAUTH_TYPE = 'CLIENT_CREDENTIALS'Gibt den Typ der Sicherheitsintegration für externe API-Authentifizierung an Weitere Informationen dazu finden Sie unter CREATE SECURITY INTEGRATION (Externe API-Authentifizierung).
OAUTH_TOKEN_ENDPOINT = 'string_literal'Gibt den Token-Endpunkt an, den der Client verwendet, um ein Zugriffstoken zu erhalten, indem seine Autorisierungsgewährung oder das Aktualisierungstoken vorlegt wird. Weitere Informationen dazu finden Sie unter CREATE SECURITY INTEGRATION (Externe API-Authentifizierung).
OAUTH_ALLOWED_SCOPES = ( 'scope' [ , 'scope' ... ] )Gibt eine durch Kommas getrennte Liste von in einfache Anführungszeichen gesetzten Geltungsbereichen an, die verwendet werden sollen, wenn während des OAuth-Client-Anmeldeinformationsablaufs vom USAGE-Server aus eine Anforderung durch eine Rolle mit OAuth-Berechtigung für die Integration gestellt wird. Weitere Informationen dazu finden Sie unter CREATE SECURITY INTEGRATION (Externe API-Authentifizierung).
OAUTH_ACCESS_TOKEN_VALIDITY = integerGibt die Standard-Gültigkeitsdauer des OAuth-Zugriffstokens (in Sekunden) an, das von einem OAuth-Server ausgestellt wird. Weitere Informationen dazu finden Sie unter CREATE SECURITY INTEGRATION (Externe API-Authentifizierung).
Sicherheitsintegrationsparameter – JWT_BEARER¶
OAUTH_TYPE = 'JWT_BEARER'Gibt den Typ der Sicherheitsintegration für externe API-Authentifizierung an Weitere Informationen dazu finden Sie unter CREATE SECURITY INTEGRATION (Externe API-Authentifizierung).
OAUTH_TOKEN_ENDPOINT = 'string_literal'Gibt den Token-Endpunkt an, den der Client verwendet, um ein Zugriffstoken zu erhalten, indem seine Autorisierungsgewährung oder das Aktualisierungstoken vorlegt wird. Weitere Informationen dazu finden Sie unter CREATE SECURITY INTEGRATION (Externe API-Authentifizierung).
OAUTH_AUTHORIZATION_ENDPOINT = 'string_literal'Gibt die URL für die Authentifizierung beim externen Dienst an. Weitere Informationen dazu finden Sie unter CREATE SECURITY INTEGRATION (Externe API-Authentifizierung).
OAUTH_REFRESH_TOKEN_VALIDITY = integerGibt die Standard-Gültigkeitsdauer des OAuth-Aktualisierungstokens (in Sekunden) an, das von einem OAuth-Server ausgestellt wird. Weitere Informationen dazu finden Sie unter CREATE SECURITY INTEGRATION (Externe API-Authentifizierung).
Listing parameters¶
TARGET_ACCOUNTS = 'account_list'Specifies a single-quoted string of target accounts, separated by commas, with no spaces. Each account must be specified in the format
OrgName.AccountName; for example:'ProviderOrg.ProviderAccount,PartnerOrg.PartnerAccount'. When the specification is approved, these accounts are added to the listing. When declined, all accounts are removed from the listing.LISTING = listing_nameSpecifies the identifier of the external listing created by the app. The listing must already exist and must have been created by the app with a share attached. After the listing is set in an app specification, the listing name cannot be changed.
AUTO_FULFILLMENT_REFRESH_SCHEDULE = 'schedule'Optional. Specifies the refresh schedule for cross-region data sharing. This parameter is required when sharing data across regions. The value can be specified in two formats:
num MINUTE: Number of minutes, with a minimum of 10 minutes and a maximum of 11,520 minutes (eight days).USING CRON expression time_zone: Cron expression with time zone for the refresh.
Nutzungshinweise¶
Um diesen Befehl verwenden zu können, müssen Anbieter sicherstellen, dass die Manifestdatei der App
manifest_version = 2verwendet.
Examples¶
Create an app specification for external access:
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');
Create an app specification for OAuth security integration:
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');
Create an app specification for data sharing through a listing:
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';