ALTER SECURITY INTEGRATION (External OAuth)¶
Ändert die Eigenschaften einer bestehenden Sicherheitsintegration, die für External OAuth erstellt wurde. Weitere Informationen zum Ändern anderer Typen von Sicherheitsintegrationen (z. B. Snowflake OAuth) finden Sie unter ALTER SECURITY INTEGRATION.
- Siehe auch:
CREATE SECURITY INTEGRATION (External OAuth), DROP INTEGRATION, SHOW INTEGRATIONS, DESCRIBE INTEGRATION
Syntax¶
ALTER [ SECURITY ] INTEGRATION [ IF EXISTS ] <name> SET
[ TYPE = EXTERNAL_OAUTH ]
[ ENABLED = { TRUE | FALSE } ]
[ EXTERNAL_OAUTH_TYPE = { OKTA | AZURE | PING_FEDERATE | CUSTOM } ]
[ EXTERNAL_OAUTH_ISSUER = '<string_literal>' ]
[ EXTERNAL_OAUTH_TOKEN_USER_MAPPING_CLAIM = '<string_literal>' | ('<string_literal>', '<string_literal>' [ , ... ] ) ]
[ EXTERNAL_OAUTH_SNOWFLAKE_USER_MAPPING_ATTRIBUTE = 'LOGIN_NAME | EMAIL_ADDRESS' ]
[ EXTERNAL_OAUTH_JWS_KEYS_URL = '<string_literal>' ] -- For OKTA | PING_FEDERATE | CUSTOM
[ EXTERNAL_OAUTH_JWS_KEYS_URL = '<string_literal>' | ('<string_literal>' [ , '<string_literal>' ... ] ) ] -- For Azure
[ EXTERNAL_OAUTH_RSA_PUBLIC_KEY = <public_key1> ]
[ EXTERNAL_OAUTH_RSA_PUBLIC_KEY_2 = <public_key2> ]
[ EXTERNAL_OAUTH_BLOCKED_ROLES_LIST = ( '<role_name>' [ , '<role_name>' , ... ] ) ]
[ EXTERNAL_OAUTH_ALLOWED_ROLES_LIST = ( '<role_name>' [ , '<role_name>' , ... ] ) ]
[ EXTERNAL_OAUTH_AUDIENCE_LIST = ('<string_literal>') ]
[ EXTERNAL_OAUTH_ANY_ROLE_MODE = DISABLE | ENABLE | ENABLE_FOR_PRIVILEGE ]
[ EXTERNAL_OAUTH_SCOPE_DELIMITER = '<string_literal>' ] -- Only for EXTERNAL_OAUTH_TYPE = CUSTOM
[ COMMENT = '<string_literal>' ]
ALTER [ SECURITY ] INTEGRATION [ IF EXISTS ] <name> UNSET {
ENABLED |
EXTERNAL_OAUTH_AUDIENCE_LIST |
}
[ , ... ]
ALTER [ SECURITY ] INTEGRATION <name> SET TAG <tag_name> = '<tag_value>' [ , <tag_name> = '<tag_value>' ... ]
ALTER [ SECURITY ] INTEGRATION <name> UNSET TAG <tag_name> [ , <tag_name> ... ]
Parameter¶
name
Bezeichner für die zu ändernde Integration. Wenn der Bezeichner Leerzeichen oder Sonderzeichen enthält, muss die gesamte Zeichenfolge in doppelte Anführungszeichen gesetzt werden. Bei Bezeichnern, die in doppelte Anführungszeichen eingeschlossen sind, ist auch die Groß-/Kleinschreibung zu beachten.
SET ...
Gibt eine oder mehrere Eigenschaften/Parameter an, die für die Integration festgelegt werden sollen (getrennt durch Leerzeichen, Kommas oder neue Zeilen):
TYPE = EXTERNAL_OAUTH
Unterscheidet die External OAuth-Integration von einer Snowflake OAuth-Integration.
ENABLED = { TRUE | FALSE }
Gibt an, ob die Integrationsoperation gestartet oder angehalten werden soll.
TRUE
ermöglicht die Ausführung der Integration basierend auf den in der Pipedefinition angegebenen Parametern.FALSE
hält die Integration für Wartungszwecke an. Eine Integration zwischen Snowflake und einem Drittanbieterdienst funktioniert nicht.
EXTERNAL_OAUTH_TYPE = { OKTA | AZURE | PING_FEDERATE | CUSTOM }
Gibt den OAuth 2.0-Autorisierungsserver als Okta, Microsoft Azure AD, Ping Identity PingFederate oder einen kundenspezifischen OAuth 2.0-Autorisierungsserver an.
EXTERNAL_OAUTH_ISSUER = 'string_literal'
Gibt die URL für die Definition des OAuth 2.0-Autorisierungsservers an.
EXTERNAL_OAUTH_TOKEN_USER_MAPPING_CLAIM = { 'string_literal' | ('string_literal', 'string_literal' [ , ... ] ) }
Gibt den Zugriffstoken-Anspruch oder Ansprüche an, die verwendet werden können, um das Zugriffstoken einem Snowflake-Benutzerdatensatz zuzuordnen.
Der Datentyp des Anspruchs muss eine Zeichenfolge oder eine Liste von Zeichenfolgen sein.
EXTERNAL_OAUTH_SNOWFLAKE_USER_MAPPING_ATTRIBUTE = { 'LOGIN_NAME | EMAIL_ADDRESS' }
Gibt an, welches Snowflake-Benutzerdatensatzattribut verwendet werden soll, um das Zugriffstoken einem Snowflake-Benutzerdatensatz zuzuordnen.
EXTERNAL_OAUTH_JWS_KEYS_URL = 'string_literal'
Gibt den Endpunkt an, von dem öffentliche Schlüssel oder Zertifikate heruntergeladen werden sollen, um ein External OAuth-Zugriffstoken zu validieren.
Diese Syntax gilt für Sicherheitsintegrationen, bei denen
EXTERNAL_OAUTH_TYPE = { OKTA | PING_FEDERATE | CUSTOM }
gilt.EXTERNAL_OAUTH_JWS_KEYS_URL = { 'string_literal' | ('string_literal' [ , 'string_literal' ... ] ) }
Gibt den Endpunkt oder eine Liste von Endpunkten an, von dem öffentliche Schlüssel oder Zertifikate heruntergeladen werden sollen, um ein External OAuth-Zugriffstoken zu validieren. Die maximale Anzahl von URLs, die in der Liste angegeben werden kann, ist 3.
Diese Syntax gilt für Sicherheitsintegrationen, bei denen
EXTERNAL_OAUTH_TYPE = AZURE
gilt.EXTERNAL_OAUTH_RSA_PUBLIC_KEY = public_key1
Gibt einen Base64-codierten öffentlichen RSA-Schlüssel ohne die Header
-----BEGIN PUBLIC KEY-----
und-----END PUBLIC KEY-----
an.EXTERNAL_OAUTH_RSA_PUBLIC_KEY_2 = public_key2
Gibt einen zweiten öffentlichen RSA-Schlüssel ohne die Header
-----BEGIN PUBLIC KEY-----
und-----END PUBLIC KEY-----
an. Wird für die Schlüsselrotation verwendet.EXTERNAL_OAUTH_BLOCKED_ROLES_LIST = ( 'role_name' [ , 'role_name' , ... ] )
Gibt die Liste der Rollen an, die ein Client nicht als Primärrolle festlegen darf. Eine Rolle in dieser Liste darf nicht verwendet werden, wenn eine Snowflake-Sitzung auf Basis des Zugriffstokens vom externen OAuth-Autorisierungsserver erstellt wird.
Diese Liste enthält standardmäßig die Rollen ACCOUNTADMIN, ORGADMIN und SECURITYADMIN. Um diese mit Berechtigungen ausgestatteten Rollen aus der Liste zu entfernen, setzen Sie mit dem Befehl ALTER ACCOUNT den Kontoparameter EXTERNAL_OAUTH_ADD_PRIVILEGED_ROLES_TO_BLOCKED_LIST auf
FALSE
.EXTERNAL_OAUTH_ALLOWED_ROLES_LIST = ( 'role_name' [ , 'role_name' , ... ] )
Gibt die Liste der Rollen an, die ein Client als Primärrolle festlegen kann.
Eine Rolle in dieser Liste darf verwendet werden, wenn eine Snowflake-Sitzung auf Basis des Zugriffstokens vom externen OAuth-Autorisierungsserver erstellt wird.
Vorsicht
Dieser Parameter unterstützt die Systemrollen ACCOUNTADMIN, ORGADMIN und SECURITYADMIN.
Seien Sie vorsichtig, wenn Sie beim Erstellen einer Snowflake-Sitzung eine Rolle mit derart umfangreichen Berechtigungen als Primärrolle auswählen.
EXTERNAL_OAUTH_AUDIENCE_LIST = ('string_literal')
Gibt Werte an, die zusätzlich zur Verwendung der Snowflake-Konto-URL des Kunden (d. h.
<Kontobezeichner>.snowflakecomputing.com
) für die Zielgruppenvalidierung des Zugriffstokens verwendet werden können. Weitere Informationen dazu finden Sie unter Kontobezeichner.Weitere Informationen zu dieser Eigenschaft bei Verwendung von Power BI SSO finden Sie unter Power BI SSO-Sicherheitsintegrationen.
Derzeit können mehrere Zielgruppen-URLs nur für kundenspezifische External OAuth-Clients angegeben werden. Jede URL muss in einfache Anführungszeichen gesetzt werden, wobei jede URL durch ein Komma getrennt wird. Beispiel:
external_oauth_audience_list = ('https://example.com/api/v2/', 'https://example.com')
EXTERNAL_OAUTH_ANY_ROLE_MODE = { DISABLE | ENABLE | ENABLE_FOR_PRIVILEGE }
Gibt an, ob der OAuth-Client oder -Benutzer eine Rolle verwenden kann, die nicht im OAuth-Zugriffstoken definiert ist. Beachten Sie, dass bei einer Power BI-Snowflake-Integration der PowerBI-Benutzer keine Rollen wechseln kann, selbst wenn dieser Parameter aktiviert ist.
DISABLE
erlaubt dem OAuth-Client oder -Benutzer nicht, die Rollen zu wechseln (d. h.USE ROLE role;
). Standard.ENABLE
ermöglicht dem OAuth-Client oder -Benutzer, die Rollen zu wechseln.ENABLE_FOR_PRIVILEGE
ermöglicht dem OAuth-Client oder -Benutzer, die Rollen nur für einen Client oder Benutzer mit der Berechtigung USE_ANY_ROLE zu wechseln. Diese Berechtigung kann einer oder mehreren dem Benutzer zur Verfügung stehenden Rollen erteilt und entzogen werden. Beispiel:GRANT USE_ANY_ROLE ON INTEGRATION external_oauth_1 TO role1;
REVOKE USE_ANY_ROLE ON INTEGRATION external_oauth_1 FROM role1;
Beachten Sie, dass der Wert optional in einfache Anführungszeichen gesetzt werden kann (z. B. entweder
DISABLE
oder'DISABLE'
).EXTERNAL_OAUTH_SCOPE_DELIMITER = 'string_literal'
Gibt das Trennzeichen für die Geltungsbereiche im Autorisierungstoken an.
Das Trennzeichen kann ein beliebiges einzelnes Zeichen sein, z. B. ein Komma (
','
) oder ein Leerzeichen (' '
).Diese Eigenschaft der Sicherheitsintegration ist optional und kann verwendet werden, um das Komma als Standard-Trennzeichen zu überschreiben. Beachten Sie, dass diese Eigenschaft nur für kundenspezifische External OAuth-Integrationen unterstützt wird, wobei:
EXTERNAL_OAUTH_TYPE = CUSTOM
Wenden Sie sich an den Snowflake-Support, um diese Eigenschaft in Ihrem Snowflake-Konto zu aktivieren.
COMMENT = 'string_literal'
Fügt einen Kommentar hinzu oder überschreibt einen vorhandenen Kommentar für die Integration.
Standard: Kein Wert
TAG tag_name = 'tag_value' [ , tag_name = 'tag_value' , ... ]
Gibt den Namen des Tags und den Wert der Tag-Zeichenfolge an.
Der Tag-Wert ist immer eine Zeichenfolge, die maximale 256 Zeichen lang sein kann.
Weitere Informationen zur Angabe von Tags in einer Anweisung finden Sie unter Tag-Kontingente für Objekte und Spalten.
UNSET ...
Gibt eine oder mehrere Eigenschaften/Parameter an, die für die Sicherheitsintegration nicht festgelegt werden sollen, wodurch sie auf ihre Standardwerte zurückgesetzt werden:
ENABLED
EXTERNAL_OAUTH_AUDIENCE_LIST
TAG tag_name [ , tag_name ... ]
Nutzungshinweise¶
Metadaten:
Achtung
Kunden müssen sicherstellen, dass bei der Nutzung des Snowflake-Dienstes keine personenbezogenen Daten (außer für ein Objekt „Benutzer“), sensible Daten, exportkontrollierte Daten oder andere regulierte Daten als Metadaten eingegeben werden. Weitere Informationen dazu finden Sie unter Metadatenfelder in Snowflake.
Beispiele¶
Das folgende Beispiel leitet die Operation einer angehaltenen Integration ein:
ALTER SECURITY INTEGRATION myint SET ENABLED = TRUE;