CREATE EXTERNAL ACCESS INTEGRATION¶
Crée une intégration d’accès externe pour l’accès à des emplacements réseau externes à partir d’une UDF ou d’un gestionnaire de procédure.
- Voir aussi :
ALTER EXTERNAL ACCESS INTEGRATION , DROP INTEGRATION , SHOW INTEGRATIONS , DESCRIBE INTEGRATION
Syntaxe¶
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>' ]
Paramètres requis¶
name
Identificateur de l’intégration de l’accès externe.
La valeur de l’identificateur doit commencer par un caractère alphabétique et ne peut pas contenir d’espaces ou de caractères spéciaux à moins que toute la chaîne d’identificateur soit délimitée par des guillemets doubles (p. ex.
"My object"
). Les identificateurs entre guillemets doubles sont sensibles à la casse.Pour plus de détails, voir Exigences relatives à l’identificateur.
ALLOWED_NETWORK_RULES = (rule_name [ , rule_name ... ])
Spécifie les règles de réseau autorisées. Seules les règles de sortie peuvent être spécifiées.
Pour des informations de référence sur les règles de réseau, reportez-vous à CREATE NETWORK RULE.
ENABLED = { TRUE | FALSE }
Spécifie si cette intégration est activée ou désactivée. Si l’intégration est désactivée, tout code de gestionnaire qui s’appuie sur elle sera incapable d’atteindre l’emplacement réseau externe.
La valeur est insensible à la casse.
La valeur par défaut est
TRUE
.
Paramètres facultatifs¶
ALLOWED_API_AUTHENTICATION_INTEGRATIONS = ( integration_name_1 [, integration_name_2, ... ] )
Spécifie les intégrations de sécurité dont le serveur d’autorisation OAuth a délivré le secret utilisé par l’UDF ou la procédure. L’intégration de la sécurité doit être du type utilisé pour l’intégration d’API externe.
Pour plus d’informations de référence sur les intégrations de sécurité, reportez-vous à CREATE SECURITY INTEGRATION (authentification API externe).
ALLOWED_AUTHENTICATION_SECRETS = (secret_name [ , secret_name ... ])
Spécifie les secrets qu’une UDF ou qu’une procédure peut utiliser lorsqu’elle se réfère à cette intégration.
Pour des informations de référence sur les secrets, voir CREATE SECRET.
COMMENT = 'string_literal'
Spécifie un commentaire pour l’intégration de l’accès externe.
Par défaut : aucune valeur
Exigences en matière de contrôle d’accès¶
Un rôle utilisé pour exécuter cette commande SQL doit avoir les privilèges suivants définis au minimum ainsi :
Privilège |
Objet |
Remarques |
---|---|---|
CREATE INTEGRATION |
Compte |
Only the ACCOUNTADMIN role has this privilege by default. The privilege can be granted to additional roles as needed. |
Pour obtenir des instructions sur la création d’un rôle personnalisé avec un ensemble spécifique de privilèges, voir Création de rôles personnalisés.
Pour des informations générales sur les rôles et les privilèges accordés pour effectuer des actions SQL sur des objets sécurisables, voir Aperçu du contrôle d’accès.
Notes sur l’utilisation¶
Concernant les métadonnées :
Attention
Les clients doivent s’assurer qu’aucune donnée personnelle (autre que pour un objet utilisateur), donnée sensible, donnée à exportation contrôlée ou autre donnée réglementée n’est saisie comme métadonnée lors de l’utilisation du service Snowflake. Pour plus d’informations, voir Champs de métadonnées dans Snowflake.
Exemples¶
Créez une intégration d’accès externe qui donne accès à l’API de traduction Google.
Pour un exemple plus complet, reportez-vous à Création et utilisation d’une intégration d’accès externe.
Créez un secret représentant les identifiants de connexion.
Pour créer un secret, vous devez vous être vu attribuer un rôle avec le privilège CREATE SECRET sur le schéma actuel. Pour les autres types de secret pris en charge par cette commande, reportez-vous à CREATE SECRET. Dans cet exemple,
google_translate_oauth
fait référence à une intégration de sécurité. Pour plus d’informations, reportez-vous à CREATE SECURITY INTEGRATION (authentification API externe).CREATE OR REPLACE SECRET oauth_token TYPE = OAUTH2 API_AUTHENTICATION = google_translate_oauth OAUTH_REFRESH_TOKEN = 'my-refresh-token';
Accordez au rôle
developer
les privilèges READ sur le secret afin que les développeurs d’UDF puissent l’utiliser.Créez le rôle qui sera requis pour les développeurs ayant besoin d’utiliser le secret.
USE ROLE USERADMIN; CREATE OR REPLACE ROLE developer;
Accordez le privilège READ au rôle
developer
.USE ROLE SECURITYADMIN; GRANT READ ON SECRET oauth_token TO ROLE developer;
Créez une règle de réseau représentant l’emplacement réseau externe. Utilisez un rôle doté des privilèges décrits dans CREATE NETWORK RULE.
USE ROLE SYSADMIN; CREATE OR REPLACE NETWORK RULE google_apis_network_rule MODE = EGRESS TYPE = HOST_PORT VALUE_LIST = ('translation.googleapis.com');
Créez une intégration d’accès externe à l’aide du secret et de la règle de réseau.
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;
Accordez au rôle
developer
les privilèges USAGE sur le l’intégration afin que les développeurs d’UDF puissent l’utiliser.GRANT USAGE ON INTEGRATION google_apis_access_integration TO ROLE developer;