CREATE EXTERNAL ACCESS INTEGRATION

Erstellt eine externe Zugriffsintegration für den Zugriff auf externe Netzwerkstandorte von einem UDF- oder Prozedur-Handler aus.

Siehe auch:

ALTER EXTERNAL ACCESS INTEGRATION, DROP INTEGRATION, SHOW INTEGRATIONS, DESCRIBE INTEGRATION

Syntax

CREATE [ OR REPLACE ] EXTERNAL ACCESS INTEGRATION <name>
  ALLOWED_NETWORK_RULES = ( <rule_name_1> [, <rule_name_2>, ... ] )
  [ ALLOWED_API_AUTHENTICATION_INTEGRATIONS = ( <integration_name_1> [, <integration_name_2>, ... ] ) ]
  [ ALLOWED_AUTHENTICATION_SECRETS = ( <secret_name_1> [, <secret_name_2>, ... ] ) ]
  ENABLED = { TRUE | FALSE }
  [ COMMENT = '<string_literal>' ]
Copy

Erforderliche Parameter

name

Bezeichner für die externe Zugriffsintegration.

Der Bezeichnerwert muss mit einem alphabetischen Zeichen beginnen und darf keine Leer- oder Sonderzeichen enthalten, es sei denn, die gesamte Bezeichnerzeichenfolge wird in doppelte Anführungszeichen gesetzt (z. B. "My object"). Bei Bezeichnern, die in doppelte Anführungszeichen eingeschlossen sind, ist die Groß-/Kleinschreibung zu beachten.

Weitere Details dazu finden Sie unter Anforderungen an Bezeichner.

ALLOWED_NETWORK_RULES = (rule_name [ , rule_name ... ])

Gibt die zulässigen Netzwerkregeln an. Es können nur Ausgangsregeln angegeben werden.

Referenzinformationen zu Netzwerkregeln finden Sie unter CREATE NETWORK RULE.

ENABLED = { TRUE | FALSE }

Gibt an, ob diese Integration aktiviert oder deaktiviert ist. Wenn die Integration deaktiviert ist, kann jeder Handler-Code, der darauf angewiesen ist, den externen Netzwerkstandort nicht erreichen.

Der Wert unterscheidet nicht zwischen Groß- und Kleinschreibung.

Die Voreinstellung ist TRUE.

Optionale Parameter

ALLOWED_API_AUTHENTICATION_INTEGRATIONS = ( integration_name_1 [, integration_name_2, ... ] )

Gibt die Sicherheitsintegrationen an, deren OAuth-Autorisierungsserver das von der UDF oder Prozedur verwendete Geheimnis ausgegeben hat. Die Sicherheitsintegration muss der Typ sein, der für die externe API-Integration verwendet wird.

Weitere Informationen zu Sicherheitsintegrationen finden Sie unter CREATE SECURITY INTEGRATION (Externe API-Authentifizierung).

ALLOWED_AUTHENTICATION_SECRETS = (secret_name [ , secret_name ... ])

Gibt die Geheimnisse an, die eine UDF oder Prozedur verwenden kann, wenn sie sich auf diese Integration bezieht.

Weitere Informationen zu Geheimnissen finden Sie unter CREATE SECRET.

COMMENT = 'string_literal'

Gibt einen Kommentar für die Integration des externen Zugangs an.

Standard: Kein Wert

Anforderungen an die Zugriffssteuerung

Eine Rolle, die zur Ausführung dieses SQL-Befehls verwendet wird, muss mindestens die folgenden Berechtigungen haben:

Berechtigung

Objekt

Anmerkungen

CREATE INTEGRATION

Konto

Only the ACCOUNTADMIN role has this privilege by default. The privilege can be granted to additional roles as needed.

Eine Anleitung zum Erstellen einer kundenspezifischen Rolle mit einer bestimmten Gruppe von Berechtigungen finden Sie unter Erstellen von kundenspezifischen Rollen.

Allgemeine Informationen zu Rollen und Berechtigungen zur Durchführung von SQL-Aktionen auf sicherungsfähigen Objekten finden Sie unter Übersicht zur Zugriffssteuerung.

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

Erstellen Sie eine externe Zugriffsintegration, die Zugriff auf die API Google Translation ermöglicht.

Ein ausführlicheres Beispiel finden Sie unter Erstellen und Verwenden einer externen Zugriffsintegration.

  1. Erstellen Sie ein Geheimnis für die Anmeldeinformationen.

    Um ein Geheimnis zu erstellen, muss Ihnen eine Rolle mit der Berechtigung CREATE SECRET für das aktuelle Schema zugewiesen worden sein. Für andere Arten von Geheimnissen, die von diesem Befehl unterstützt werden, siehe CREATE SECRET. In diesem Beispiel bezieht sich google_translate_oauth auf eine Sicherheitsintegration. Weitere Informationen dazu finden Sie unter CREATE SECURITY INTEGRATION (Externe API-Authentifizierung).

    CREATE OR REPLACE SECRET oauth_token
      TYPE = OAUTH2
      API_AUTHENTICATION = google_translate_oauth
      OAUTH_REFRESH_TOKEN = 'my-refresh-token';
    
    Copy
  2. Gewähren Sie die READ-Berechtigung für das Geheimnis an die developer-Rolle, damit UDF-Entwickler es verwenden können.

    Erstellen Sie die Rolle, die für Entwickler erforderlich ist, die das Geheimnis verwenden müssen.

    USE ROLE USERADMIN;
    CREATE OR REPLACE ROLE developer;
    
    Copy

    Erteilen Sie die READ-Berechtigung an die developer-Rolle.

    USE ROLE SECURITYADMIN;
    GRANT READ ON SECRET oauth_token TO ROLE developer;
    
    Copy
  3. Erstellen Sie eine Netzwerkregel, die den Standort des externen Netzwerks repräsentiert. Verwenden Sie eine Rolle mit den unter CREATE NETWORK RULE beschriebenen Berechtigungen.

    USE ROLE SYSADMIN;
    CREATE OR REPLACE NETWORK RULE google_apis_network_rule
      MODE = EGRESS
      TYPE = HOST_PORT
      VALUE_LIST = ('translation.googleapis.com');
    
    Copy
  4. Erstellen Sie eine externe Zugriffsintegration unter Verwendung des Geheimnisses und der Netzwerkregel.

    USE ROLE ACCOUNTADMIN;
    CREATE OR REPLACE EXTERNAL ACCESS INTEGRATION google_apis_access_integration
      ALLOWED_NETWORK_RULES = (google_apis_network_rule)
      ALLOWED_AUTHENTICATION_SECRETS = (oauth_token)
      ENABLED = true;
    
    Copy
  5. Gewähren Sie die USAGE-Berechtigung für die Integration an die developer-Rolle, damit UDF-Entwickler sie verwenden können.

    GRANT USAGE ON INTEGRATION google_apis_access_integration TO ROLE developer;
    
    Copy