CREATE SECRET

Crée un nouveau secret dans le schéma actuel/spécifié ou remplace un secret existant.

Voir aussi :

ALTER SECRET , DESCRIBE SECRET , DROP SECRET , SHOW SECRETS

Syntaxe

OAuth : identifiants de connexion client ou flux de code d’autorisation :

CREATE [ OR REPLACE ] SECRET [ IF NOT EXISTS ] <name>
    TYPE = OAUTH2
    API_AUTHENTICATION = <security_integration_name>
    OAUTH_SCOPES = ( '<scope_1>' [ , '<scope_2>' ... ] )
    [ ENABLED = { TRUE | FALSE } ]
    [ COMMENT = '<string_literal>' ]
Copy

OAuth : flux d’accord de code :

CREATE [ OR REPLACE ] SECRET [ IF NOT EXISTS ] <name>
    TYPE = OAUTH2
    OAUTH_REFRESH_TOKEN = '<string_literal>'
    OAUTH_REFRESH_TOKEN_EXPIRY_TIME = '<string_literal>'
    API_AUTHENTICATION = <security_integration_name>;
    [ ENABLED = { TRUE | FALSE } ]
    [ COMMENT = '<string_literal>' ]
Copy

Authentification de base :

CREATE [ OR REPLACE ] SECRET [ IF NOT EXISTS ] <name>
    TYPE = PASSWORD
    USERNAME = '<username>'
    PASSWORD = '<password>'
    [ ENABLED = { TRUE | FALSE } ]
    [ COMMENT = '<string_literal>' ]
Copy

OAuth avec les paramètres d’identifiants de connexion client ou de flux de code d’autorisation requis

name

Chaîne spécifiant l’identificateur (c’est-à-dire le nom) du secret ; elle doit être unique dans votre schéma.

De plus, 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 également sensibles à la casse.

Pour plus de détails, voir Exigences relatives à l’identificateur.

TYPE = OAUTH2

Spécifie un secret à utiliser avec un flux d’accord OAuth.

API_AUTHENTICATION = security_integration_name

Spécifie la valeur name de l’intégration de sécurité Snowflake qui connecte Snowflake à un service externe.

OAUTH_SCOPES = ( 'scope_1' [ , 'scope_2' ... ] )

Spécifie une liste des champs d’application séparés par des virgules à utiliser lors d’une requête à partir du serveur OAuth par un rôle avec USAGE sur l’intégration pendant le flux d””identifiants de connexion client OAuth.

Cette liste doit être un sous-ensemble des champs d’application définis dans la propriété OAUTH_ALLOWED_SCOPES de l’intégration de sécurité. Si les valeurs de propriété OAUTH_SCOPES ne sont pas spécifiées, le secret hérite de tous les champs d’application spécifiés dans l’intégration de sécurité.

Pour le connecteur ServiceNow, la seule valeur de champ d’application possible est 'useraccount'.

OAuth avec les paramètres flux d’accord de code requis

name

Chaîne spécifiant l’identificateur (c’est-à-dire le nom) du secret ; elle doit être unique dans votre schéma.

De plus, 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 également sensibles à la casse.

Pour plus de détails, voir Exigences relatives à l’identificateur.

TYPE = OAUTH2

Spécifie un secret à utiliser avec le flux d’accord OAuth.

OAUTH_REFRESH_TOKEN = 'string_literal'

Spécifie le jeton sous la forme d’une chaîne utilisée pour obtenir un nouveau jeton d’accès du serveur d’autorisation OAuth lorsque le jeton d’accès expire.

OAUTH_REFRESH_TOKEN_EXPIRY_TIME = 'string_literal'

Spécifie l’horodatage sous forme de chaîne lorsque le jeton d’actualisation OAuth expire.

API_AUTHENTICATION = security_integration_name

Spécifie la valeur name de l’intégration de sécurité Snowflake qui connecte Snowflake à un service externe.

Paramètres requis pour l’authentification de base

name

Chaîne spécifiant l’identificateur (c’est-à-dire le nom) du secret ; elle doit être unique dans votre schéma.

De plus, 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 également sensibles à la casse.

Pour plus de détails, voir Exigences relatives à l’identificateur.

TYPE = PASSWORD

Spécifie un secret à utiliser avec l’authentification de base.

Lorsque vous spécifiez ce type, vous devez spécifier des valeurs pour les propriétés de nom d’utilisateur et de mot de passe.

USERNAME = 'username'

Spécifie la valeur du nom d’utilisateur à stocker dans le secret.

Spécifiez cette valeur lorsque vous définissez la valeur TYPE sur PASSWORD pour une utilisation avec l’authentification de base.

PASSWORD = 'password'

Spécifie la valeur du mot de passe à stocker dans le secret.

Spécifiez cette valeur lorsque vous définissez la valeur TYPE sur PASSWORD pour une utilisation avec l’authentification de base.

Paramètres facultatifs

ENABLED = TRUE | FALSE

Spécifie s’il faut rendre le secret disponible pour utilisation.

  • TRUE permet d’utiliser le secret en fonction des paramètres spécifiés dans la définition du secret.

  • FALSE suspend l’utilisation du secret. Tout objet qui appelle le secret (par exemple, une fonction externe) ne fonctionne pas.

Par défaut : TRUE.

COMMENT = 'string_literal'

Chaîne (littéral) qui spécifie un commentaire pour le secret.

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 SECRET

Schéma

Notez que l’exploitation d’un objet dans un schéma requiert également le privilège USAGE sur la base de données et le schéma parents.

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

  • L’objet secret ne peut que être utilisé dans le contexte du connecteur ServiceNow. Pour plus de détails, reportez-vous à Connecteur Snowflake pour ServiceNow.

  • 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 un secret à utiliser avec le flux d’identifiants de connexion client OAuth :

CREATE OR REPLACE SECRET IF NOT EXISTS mysecret
    TYPE = OAUTH2
    API_AUTHENTICATION = mysecurityintegration
    OAUTH_SCOPES = ('useraccount')
    ENABLED = TRUE
    COMMENT = 'secret for the service now connector'
Copy

Créez un secret à utiliser avec le flux d’accord de code OAuth :

CREATE SECRET service_now_creds_oauth_code
    TYPE = OAUTH2
    OAUTH_REFRESH_TOKEN = '34n;vods4nQsdg09wee4qnfvadH'
    OAUTH_REFRESH_TOKEN_EXPIRY_TIME = '2022-01-06 20:00:00'
    API_AUTHENTICATION = sn_oauth;
Copy

Créez un secret qui spécifie un nom d’utilisateur et un mot de passe pour accéder à ServiceNow :

CREATE SECRET service_now_creds_pw
    TYPE = password
    USERNAME = 'jsmith1'
    PASSWORD = 'W3dr@fg*7B1c4j';
Copy