Catégories :

Utilisateur et sécurité DDL (Utilisateurs)

CREATE USER

Crée un nouvel utilisateur ou remplace un utilisateur existant dans le système. Pour plus de détails, voir Gestion des utilisateurs.

Note

Seuls les administrateurs de sécurité et de compte (utilisateurs avec le rôle SECURITYADMIN ou ACCOUNTADMIN) peuvent créer des utilisateurs.

Voir aussi :

ALTER USER , DESCRIBE USER , SHOW PARAMETERS

Syntaxe

CREATE [ OR REPLACE ] USER [ IF NOT EXISTS ] <name>
  [ objectProperties ]
  [ objectParams ]
  [ sessionParams ]

Où :

objectProperties ::=
  PASSWORD = '<string>'
  LOGIN_NAME = <string>
  DISPLAY_NAME = <string>
  FIRST_NAME = <string>
  MIDDLE_NAME = <string>
  LAST_NAME = <string>
  EMAIL = <string>
  MUST_CHANGE_PASSWORD = TRUE | FALSE
  DISABLED = TRUE | FALSE
  SNOWFLAKE_SUPPORT = TRUE | FALSE
  DAYS_TO_EXPIRY = <integer>
  MINS_TO_UNLOCK = <integer>
  DEFAULT_WAREHOUSE = <string>
  DEFAULT_NAMESPACE = <string>
  DEFAULT_ROLE = <string>
  MINS_TO_BYPASS_MFA = <integer>
  RSA_PUBLIC_KEY = <string>
  RSA_PUBLIC_KEY_2 = <string>
  COMMENT = '<string_literal>'
objectParams ::=
  NETWORK_POLICY = <string>
sessionParams ::=
  ABORT_DETACHED_QUERY = TRUE | FALSE
  AUTOCOMMIT = TRUE | FALSE
  BINARY_INPUT_FORMAT = <string>
  BINARY_OUTPUT_FORMAT = <string>
  DATE_INPUT_FORMAT = <string>
  DATE_OUTPUT_FORMAT = <string>
  ERROR_ON_NONDETERMINISTIC_MERGE = TRUE | FALSE
  ERROR_ON_NONDETERMINISTIC_UPDATE = TRUE | FALSE
  JSON_INDENT = <num>
  LOCK_TIMEOUT = <num>
  QUERY_TAG = <string>
  ROWS_PER_RESULTSET = <num>
  SIMULATED_DATA_SHARING_CONSUMER = <string>
  STATEMENT_TIMEOUT_IN_SECONDS = <num>
  STRICT_JSON_OUTPUT = TRUE | FALSE
  TIMESTAMP_DAY_IS_ALWAYS_24H = TRUE | FALSE
  TIMESTAMP_INPUT_FORMAT = <string>
  TIMESTAMP_LTZ_OUTPUT_FORMAT = <string>
  TIMESTAMP_NTZ_OUTPUT_FORMAT = <string>
  TIMESTAMP_OUTPUT_FORMAT = <string>
  TIMESTAMP_TYPE_MAPPING = <string>
  TIMESTAMP_TZ_OUTPUT_FORMAT = <string>
  TIMEZONE = <string>
  TIME_INPUT_FORMAT = <string>
  TIME_OUTPUT_FORMAT = <string>
  TRANSACTION_DEFAULT_ISOLATION_LEVEL = <string>
  TWO_DIGIT_CENTURY_START = <num>
  UNSUPPORTED_DDL_ACTION = <string>
  USE_CACHED_RESULT = TRUE | FALSE
  WEEK_OF_YEAR_POLICY = <num>
  WEEK_START = <num>

Note

Pour plus de lisibilité, la liste complète des paramètres de session pouvant être définis pour un utilisateur n’est pas incluse ici. Pour une liste complète de tous les paramètres de session, avec leurs descriptions, ainsi que les paramètres de compte et d’objet, voir Paramètres.

Paramètres requis

nom

Identificateur de l’utilisateur ; doit être unique pour votre compte.

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.

Note

L’utilisateur n’utilise pas cette valeur pour se connecter à Snowflake ; à la place, l’utilisateur utilise la valeur spécifiée pour la propriété LOGIN_NAME pour se connecter. Cependant, si aucun nom de connexion n’est explicitement spécifié pour l’utilisateur, le nom d’utilisateur/identificateur sert de nom de connexion par défaut.

Propriétés d’objet facultatives (objectProperties)

PASSWORD = 'chaîne'

Mot de passe de l’utilisateur (doit être entouré de guillemets simples ou doubles). Si aucun mot de passe n’est spécifié, l’utilisateur ne peut se connecter à Snowflake tant qu’un mot de passe n’a pas été explicitement spécifié pour lui.

Un mot de passe peut correspondre à n’importe quelle chaîne sensible à la casse jusqu’à 256 caractères, y compris des espaces vides et des caractères spéciaux (c’est-à-dire, non alphanumériques), tels que des points d’exclamation (!), des signes de pourcentage (%) et des astérisques (*).

Snowflake applique la politique de mot de passe suivante lors de la création d’un utilisateur, la définition d’un nouveau mot de passe pour un utilisateur, ou la réinitialisation du mot de passe existant d’un utilisateur :

  • Doit comporter au moins huit caractères.

  • Doit contenir au moins un chiffre.

  • Doit contenir au moins une lettre majuscule et une lettre minuscule.

Cependant, cette politique ne couvre que les exigences minimums pour les mots de passe utilisateur. Nous recommandons fortement de respecter les consignes suivantes pour créer les mots de passe les plus sécurisés possible :

  • Créez un mot de passe unique pour Snowflake (autrement dit, ne réutilisez pas les mots de passe d’autres systèmes ou comptes).

  • Utilisez plus de huit caractères.

  • Incluez plusieurs lettres, chiffres et caractères spéciaux, y compris des espaces vides, en majuscules et en minuscules.

  • N’utilisez pas de mots de passe, de noms, de numéros ou de dates faciles à deviner.

En outre, pour configurer le plus haut niveau de sécurité pour la connexion des utilisateurs, nous recommandons que les utilisateurs s’inscrivent à MFA.

Notez que Snowflake n’impose pas cette politique lorsqu’un mot de passe est initialement défini pour un utilisateur utilisant cette commande ou la commande ALTER USER. Cela permet aux administrateurs de sécurité de décider s’il faut attribuer aux nouveaux utilisateurs des mots de passe génériques, moins sûrs ou des mots de passe spécifiques, plus sécurisés. Si des mots de passe initiaux génériques sont utilisés, nous vous recommandons vivement également de définir la propriété MUST_CHANGE_PASSWORD sur TRUE pour demander aux utilisateurs de changer leur mot de passe lors de leur prochaine connexion (y compris la connexion initiale) à Snowflake.

De plus, Snowflake permet de créer des utilisateurs sans mot de passe initial pour faciliter les méthodes d’entreprise pour lesquelles les nouveaux utilisateurs ne sont pas autorisés à se connecter au système. Cependant, en règle générale, Snowflake s’attend à ce que les utilisateurs soient créés avec des mots de passe initiaux. En fait, l’interface Web de Snowflake ne permet pas de créer des utilisateurs sans mot de passe.

Une chaîne vide ('') ou NULL indique que l’utilisateur n’a pas de mot de passe.

Par défaut : NULL

LOGIN_NAME = chaîne

Nom que l’utilisateur saisit pour se connecter au système. Les noms de connexion des utilisateurs doivent être uniques pour l’ensemble de votre compte.

Un nom de connexion peut être n’importe quelle chaîne de caractères, y compris des espaces et des caractères non alphanumériques, tels que des points d’exclamation (!), des signes pourcentage (%) et des astérisques (*) ; cependant, si la chaîne contient des espaces ou des caractères non alphanumériques, elle doit être incluse entre guillemets simples ou doubles. Les noms de connexion sont toujours insensibles à la casse.

Snowflake permet de spécifier différents noms d’utilisateur et noms de connexion pour permettre l’utilisation d’identificateurs communs (par exemple, les adresses e-mail) pour la connexion.

Valeur par défaut : nom/identificateur de l’utilisateur (c’est-à-dire si aucune valeur n’est spécifiée, la valeur spécifiée pour nom est utilisée comme nom de connexion)

DISPLAY_NAME = chaîne

Nom affiché pour l’utilisateur dans l’interface Web de Snowflake.

Valeur par défaut : nom/identificateur de l’utilisateur (c’est-à-dire si aucune valeur n’est spécifiée, la valeur spécifiée pour nom est utilisée comme nom d’affichage)

FIRST_NAME = chaîne , . MIDDLE_NAME = chaîne , . LAST_NAME = chaîne

Prénom, deuxième prénom et nom de l’utilisateur.

Par défaut : NULL

EMAIL = chaîne

Adresse e-mail de l’utilisateur.

Il n’est pas nécessaire d’avoir une adresse e-mail pour utiliser Snowflake ; cependant, pour accéder à la communauté Snowflake afin d’ouvrir des tickets d’assistance ou contribuer aux forums communautaires, une adresse e-mail valide doit être spécifiée pour l’utilisateur.

Par défaut : NULL

MUST_CHANGE_PASSWORD = TRUE | FALSE

Indique si l’utilisateur doit obligatoirement modifier son mot de passe lors de la prochaine connexion (y compris sa première connexion) dans le système.

Par défaut : FALSE

DISABLED = TRUE | FALSE

Indique si l’utilisateur est désactivé, ce qui empêche les actions suivantes :

  • Pour un nouvel utilisateur, l’utilisateur ne peut plus accéder à Snowflake et ne peut plus se connecter.

  • Pour un utilisateur existant, le paramétrage de la propriété interrompt toutes les requêtes en cours d’exécution et ne permet pas à l’utilisateur d’émettre de nouvelles requêtes ; l’utilisateur est également immédiatement verrouillé hors de Snowflake et ne peut pas se reconnecter.

Par défaut : FALSE

SNOWFLAKE_SUPPORT = TRUE | FALSE

Spécifie si Snowflake peut se connecter en tant que cet utilisateur. Cette propriété peut être utilisée pour permettre à un représentant de Snowflake ou à un ingénieur support d’accéder à votre compte pour déboguer ou dépanner des problèmes.

Par défaut : FALSE

DAYS_TO_EXPIRY = entier

Indique le nombre de jours après lequel le statut utilisateur est défini sur « Expiré » et l’utilisateur n’est plus autorisé à se connecter. Ceci est utile pour définir des utilisateurs temporaires (c.-à-d. les utilisateurs qui ne devraient avoir accès à Snowflake que pour une période de temps limitée).

Une fois définie, un décompte est effectué pour la valeur, jusqu’à 0, mais ne s’arrête pas. Une valeur négative indique que le statut de l’utilisateur est « Expiré ». Pour réinitialiser la valeur, utilisez ALTER USER afin de définir les valeurs suivantes :

  • Pour réactiver l’utilisateur en tant qu’utilisateur temporaire, réglez la valeur sur une valeur supérieure à 0.

  • Pour spécifier l’utilisateur en tant qu’utilisateur permanent, définissez la valeur sur NULL ou 0.

Par défaut : NULL

MINS_TO_UNLOCK = entier

Indique le nombre de minutes jusqu’à ce que le verrouillage temporaire de la connexion de l’utilisateur soit désactivé. Pour se protéger contre la connexion non autorisée d’un utilisateur, Snowflake place un verrou temporaire sur un utilisateur au bout de cinq tentatives de connexion consécutives infructueuses :

  • Une valeur positive indique que le statut de l’utilisateur est « Verrouillé ».

  • Une fois que la valeur compte jusqu’à 0 (ou une valeur négative), le verrouillage est effacé et l’utilisateur est autorisé à se reconnecter.

  • Lorsque l’utilisateur se connecte avec succès à Snowflake, la valeur est réinitialisée à NULL.

Lors de la création d’un utilisateur, cette propriété peut être définie pour l’empêcher de se connecter jusqu’à ce que le délai spécifié s’écoule.

Pour supprimer immédiatement un verrou pour un utilisateur, utilisez ALTER USER et spécifiez une valeur de 0 pour ce paramètre.

Par défaut : NULL

DEFAULT_WAREHOUSE = chaîne

Spécifie l’entrepôt virtuel qui est actif par défaut pour la session de l’utilisateur lors de la connexion.

Un utilisateur peut spécifier ou modifier son entrepôt virtuel par défaut actuel en utilisant ALTER USER. En outre, après avoir démarré une session (c’est-à-dire après s’être connecté), un utilisateur peut modifier l’entrepôt virtuel de la session à l’aide de la commande USE WAREHOUSE.

Par défaut : NULL

DEFAULT_NAMESPACE = chaîne

Spécifie l’espace de noms (base de données uniquement ou base de données et schéma) qui est actif par défaut pour la session de l’utilisateur lors de la connexion :

  • Pour spécifier une base de données uniquement, saisissez le nom de la base de données.

  • Pour spécifier un schéma, saisissez le nom du schéma complet sous la forme nom_bd.nom_schéma.

Un utilisateur peut spécifier ou modifier son espace de noms par défaut actuel en utilisant ALTER USER. De plus, après avoir démarré une session (c’est-à-dire après s’être connecté), un utilisateur peut modifier l’espace de noms de sa session en utilisant USE DATABASE ou USE SCHEMA.

Par défaut : NULL

DEFAULT_ROLE = chaîne

Spécifie le rôle qui est actif par défaut pour la session de l’utilisateur lors de la connexion.

Notez que spécifier un rôle par défaut pour un utilisateur n’accorde pas ce rôle à l’utilisateur. Le rôle doit également être explicitement attribué à l’utilisateur utilisant la commande GRANT ROLE.

Un utilisateur peut spécifier ou modifier son rôle par défaut actuel en utilisant ALTER USER. En outre, après avoir démarré une session (c’est-à-dire après s’être connecté), un utilisateur peut modifier le rôle de la session à l’aide de la commande USE ROLE. Dans les deux cas, seuls les rôles qui leur ont été explicitement attribués sont disponibles.

Par défaut : NULL

MINS_TO_BYPASS_MFA = entier

Spécifie le nombre de minutes de la désactivation temporaire de la MFA pour l’utilisateur.

Cette propriété peut être utilisée pour permettre à un utilisateur MFA inscrit de contourner temporairement la MFA pendant la connexion au cas où son appareil MFA n’est pas disponible.

RSA_PUBLIC_KEY = chaîne

Spécifie la clé publique RSA de l’utilisateur, utilisée pour l’authentification par paire de clés.

RSA_PUBLIC_KEY_2 = chaîne

Spécifie la deuxième clé publique RSA de l’utilisateur ; utilisée pour faire pivoter les clés publiques et privées pour l’authentification par paire de clés en fonction d’un calendrier d’expiration défini par votre organisation.

COMMENT = 'litéral_chaine'

Spécifie un commentaire pour l’utilisateur.

Par défaut : NULL

Paramètres d’objet facultatifs (objectParams)

NETWORK_POLICY = chaîne

Spécifie qu’une stratégie réseau existante est active pour l’utilisateur. La stratégie réseau restreint la liste des adresses IP des utilisateurs lors de l’échange d’un code d’autorisation contre un jeton d’accès ou d’actualisation et lors de l’utilisation d’un jeton d’actualisation pour obtenir un nouveau jeton d’accès.

Si ce paramètre n’est pas défini, la politique réseau du compte (le cas échéant) est utilisée à la place.

Paramètres de session facultatifs (sessionParams)

Spécifie un (ou plusieurs) paramètre(s) de session par défaut à définir pour l’utilisateur (séparés par des espaces, des virgules ou de nouvelles lignes). Ces valeurs par défaut sont définies chaque fois que l’utilisateur se connecte à Snowflake et lance une session. L’utilisateur peut toujours modifier lui-même ces valeurs par défaut au cours de la session en utilisant ALTER SESSION.

Pour obtenir la liste complète des paramètres de session, y compris leurs valeurs par défaut, qui peuvent être spécifiées pour un utilisateur, voir Paramètres.

Exemples

Créer un utilisateur avec toutes les propriétés par défaut, un rôle par défaut et un mot de passe de base qui doit être modifié par l’utilisateur après sa première connexion :

CREATE USER user1 PASSWORD='abc123' DEFAULT_ROLE = myrole MUST_CHANGE_PASSWORD = TRUE;