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> ... ]
Copy

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')
Copy
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;
    
    Copy
    REVOKE USE_ANY_ROLE ON INTEGRATION external_oauth_1 FROM role1;
    
    Copy

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;
Copy