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 des utilisateurs (c’est-à-dire les utilisateurs ayant le rôle USERADMIN ou un rôle supérieur), ou un autre rôle ayant le privilège CREATE USER sur le compte, 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'

Le 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.

Pour plus d’informations sur les mots de passe dans Snowflake, voir Politique de mot de passe Snowflake.

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.

Notez que l’opération CREATE USER ne vérifie pas l’existence de l’entrepôt.

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.

Notez que l’opération CREATE USER ne vérifie pas l’existence de l’espace de noms.

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 être explicitement attribué à l’utilisateur utilisant la commande GRANT ROLE. En outre, l’opération CREATE USER ne vérifie pas l’existence du rôle.

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;