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>' ... ] ) ];
Freigabeangebot¶
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'Gibt eine Zeichenfolge von Zielkonten in einfachen Anführungszeichen ohne Leerzeichen an, die durch Kommas getrennt sind. Jedes Konto muss im Format
OrgName.AccountNameangegeben werden; zum Beispiel:'ProviderOrg.ProviderAccount,PartnerOrg.PartnerAccount'. Sobald die Spezifikation genehmigt wird, werden diese Konten der Liste hinzugefügt. Wenn sie abgelehnt wird, werden alle Konten aus dem Freigabeangebot entfernt.LISTING = listing_nameGibt den Bezeichner des von der App erstellten externen Freigabeangebots an. Das Freigabeangebot muss bereits existieren und von der App mit einer Freigabe erstellt worden sein. Nachdem das Freigabeangebot in einer App-Spezifikation festgelegt wurde, kann der Name des Freigabeangebots nicht mehr geändert werden.
AUTO_FULFILLMENT_REFRESH_SCHEDULE = 'schedule'Optional. Gibt den Aktualisierungszeitplan für die regionsübergreifende Datenfreigabe an: Dieser Parameter ist erforderlich, wenn Daten über Regionen hinweg freigegeben werden. Der Wert kann in zwei Formaten angegeben werden:
num MINUTE: Anzahl der Minuten, mit einem Minimum von 10 Minuten und einem Maximum von 11.520 Minuten (acht Tage).USING CRON expression time_zone: Cron-Ausdruck mit Zeitzone für die Aktualisierung.
Nutzungshinweise¶
Um diesen Befehl verwenden zu können, müssen Anbieter sicherstellen, dass die Manifestdatei der App
manifest_version = 2verwendet.
Beispiele¶
Erstellen Sie eine App-Spezifikation für den externen Zugriff:
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');
Erstellen Sie eine App-Spezifikation für eine OAuth-Sicherheitsintegration:
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');
Erstellen Sie eine App-Spezifikation für die Datenfreigabe über ein Freigabeangebot:
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';