CREATE SECRET¶
Crée un nouveau secret dans le schéma actuel/spécifié ou remplace un secret existant.
- Voir aussi :
Syntaxe¶
OAuth avec flux d’identifiants de connexion client :
CREATE [ OR REPLACE ] SECRET [ IF NOT EXISTS ] <name> TYPE = OAUTH2 API_AUTHENTICATION = <security_integration_name> OAUTH_SCOPES = ( '<scope_1>' [ , '<scope_2>' ... ] ) [ COMMENT = '<string_literal>' ]
OAuth avec flux d’accord de code d’autorisation :
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>; [ COMMENT = '<string_literal>' ]
Authentification de base :
CREATE [ OR REPLACE ] SECRET [ IF NOT EXISTS ] <name> TYPE = PASSWORD USERNAME = '<username>' PASSWORD = '<password>' [ COMMENT = '<string_literal>' ]
Chaîne générique :
CREATE [ OR REPLACE ] SECRET [ IF NOT EXISTS ] <name> TYPE = GENERIC_STRING SECRET_STRING = '<string_literal>' [ COMMENT = '<string_literal>' ]
OAuth avec les paramètres requis de flux d’identifiants de connexion client¶
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'
.
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
surPASSWORD
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
surPASSWORD
pour une utilisation avec l’authentification de base.
Paramètres de chaîne génériques¶
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 = GENERIC_STRING
Spécifie un secret pour stocker une valeur de chaîne sensible.
SECRET_STRING = 'string_literal'
Spécifie la chaîne à stocker dans le secret.
La chaîne peut être un jeton API ou une chaîne de valeur sensible qui peut être utilisée dans le code du gestionnaire d’une UDF ou d’une procédure stockée. Pour plus de détails, voir Création et utilisation d’une intégration d’accès externe.
Vous ne devez pas utiliser cette propriété pour stocker un quelconque type de jeton OAuth ; utilisez l’un des autres types de secrets pour vos cas d’utilisation OAuth.
Paramètres facultatifs¶
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¶
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 mysecret TYPE = OAUTH2 API_AUTHENTICATION = mysecurityintegration OAUTH_SCOPES = ('useraccount') COMMENT = 'secret for the service now connector'
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;
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';