Gestion des utilisateurs

Les administrateurs des utilisateurs peuvent créer et gérer les utilisateurs de Snowflake via SQL ou l’interface Web :

  • En utilisant SQL, les administrateurs peuvent exécuter toutes les tâches liées à l’utilisateur, comme la modification des identifiants de connexion et des valeurs par défaut des utilisateurs.

  • L’interface Web ne prend pas en charge toutes les tâches liées à l’utilisateur, mais elle fournit un assistant pratique pour créer des utilisateurs et exécuter la plupart des activités courantes, telles que la réinitialisation du mot de passe d’un utilisateur.

Dans ce chapitre :

Privilèges requis pour créer et modifier des utilisateurs

Les rôles ou privilèges suivants sont nécessaires pour gérer les utilisateurs de votre compte :

Création d’utilisateurs

Le rôle système USERADMIN peut créer des utilisateurs en utilisant SQL (CREATE USER) ou l’interface Web.

Si vous préférez utiliser un rôle personnalisé à cette fin, accordez le privilège CREATE USER sur le compte à ce rôle.

Modifier les utilisateurs

Seul le rôle ayant le privilège OWNERSHIP sur un utilisateur, ou un rôle supérieur, peut modifier la plupart des propriétés de l’utilisateur en utilisant SQL (ALTER USER) ou effectuer des actions sur l’utilisateur dans l’interface Web. En outre, le rôle doit avoir le privilège global CREATE USER.

Politique de mot de passe Snowflake

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 (*).

Lors de la création de l’utilisateur, il est possible de définir un mot de passe faible pour l’utilisateur qui ne répond pas aux exigences minimales décrites ci-dessous (par exemple 'test12345'). Cette fonctionnalité permet aux administrateurs d’utiliser des mots de passe génériques pour l’utilisateur pendant le processus de création. Si ce choix est fait, Snowflake recommande fortement de définir la propriété MUST_CHANGE_PASSWORD sur TRUE pour obliger les utilisateurs à modifier leur mot de passe lors de leur prochaine connexion (y compris lors de la première la connexion) à 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. Si cela se produit, la valeur de la propriété PASSWORD de l’utilisateur sera NULL. Cependant, en règle générale, Snowflake s’attend à ce que les utilisateurs soient créés avec des mots de passe initiaux.

Dans le cadre de la réinitialisation d’un mot de passe existant (par exemple, remplacer 'test12345' par 'q@-*DaC2yjZoq3Re4JYX'), Snowflake applique la politique de mot de passe suivante comme exigence minimale lors de l’utilisation de la commande ALTER USER et de l’interface Web :

  • Doit comporter au moins huit caractères.

  • Doit contenir au moins un chiffre.

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

Snowflake recommande fortement de respecter les consignes suivantes pour créer les mots de passe les plus sûrs 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.

Enfin, pour configurer le plus haut niveau de sécurité pour la connexion des utilisateurs, Snowflake recommande que les utilisateurs s’inscrivent à MFA.

Rôles utilisateur

Snowflake utilise des rôles pour contrôler les objets (entrepôts virtuels, bases de données, tables, etc.) auxquels les utilisateurs peuvent accéder :

  • Snowflake fournit un ensemble de rôles prédéfinis, ainsi qu’un cadre pour définir une hiérarchie de rôles personnalisés.

  • Tous les utilisateurs de Snowflake se voient automatiquement attribuer le rôle prédéfini PUBLIC, qui permet de se connecter à Snowflake et d’accéder aux objets de base.

  • En plus du rôle PUBLIC, chaque utilisateur peut se voir attribuer des rôles supplémentaires, l’un de ces rôles étant désigné comme rôle par défaut. Le rôle par défaut d’un utilisateur détermine le rôle utilisé dans les sessions Snowflake initiées par l’utilisateur ; cependant, il ne s’agit que d’un rôle par défaut. Les utilisateurs peuvent modifier les rôles au sein d’une session à tout moment.

  • Les rôles peuvent être affectés lors de la création de l’utilisateur ou après.

Attention

Lorsque vous décidez des rôles supplémentaires à affecter à un utilisateur, ainsi que de leur rôle par défaut, tenez compte de ce qui suit pour le rôle prédéfini ACCOUNTADMIN (requis pour effectuer des tâches administratives au niveau du compte) :

  • Snowflake recommande de contrôler strictement l’assignation de ACCOUNTADMIN, mais recommande de l’assigner à au moins deux utilisateurs.

  • ACCOUNTADMIN ne devrait jamais être désigné comme rôle par défaut de l’utilisateur. Au lieu de cela, désignez un rôle administratif ou personnalisé de niveau inférieur comme rôle par défaut.

Pour plus de détails et pour connaître les meilleures pratiques relatives au rôle ACCOUNTADMIN, voir Remarques relatives au contrôle d’accès. Pour plus d’informations générales sur les rôles, voir Contrôle d’accès dans Snowflake.

Création d’utilisateurs

Vous pouvez créer un utilisateur via l’interface Web ou en utilisant SQL.

Note

L’interface Web exige que vous spécifiiez un mot de passe lorsque vous créez un utilisateur ; ce n’est pas le cas de la commande CREATE USER.

Pour plus d’informations sur les mots de passe dans Snowflake, voir Politique de mot de passe Snowflake (dans ce chapitre)

Utilisation de l’interface Web

  1. Cliquez sur Account Account tab » Users.

  2. Cliquez sur le bouton Create.

  3. Dans le champ User Name, entrez un identifiant unique pour l’utilisateur.

    Note

    Le nom d’utilisateur est l’identifiant unique de l’utilisateur dans Snowflake. Ce n’est pas le nom de connexion de l’utilisateur (c.-à-d. le nom que l’utilisateur entre lorsqu’il se connecte à Snowflake). Snowflake permet aux utilisateurs d’avoir différents noms d’utilisateur et noms de connexion, si désiré. Vous spécifiez un nom de connexion pour l’utilisateur dans l’écran suivant.

  4. Dans les champs Password et Confirm Password, entrez le mot de passe de connexion de l’utilisateur.

  5. Laissez la case Force Password Change cochée pour contraindre l’utilisateur à changer son mot de passe lors de sa prochaine connexion ; sinon, décochez la case.

  6. Cliquez sur le bouton Next. L’écran Advanced s’ouvre.

  7. Si vous le souhaitez, saisissez Login Name, Display Name et les informations personnelles de l’utilisateur.

    Note

    Les utilisateurs ont besoin d’un nom d’utilisateur pour ouvrir une session dans Snowflake ; si vous ne fournissez pas explicitement un nom d’utilisateur, Snowflake utilise leur nom d’utilisateur comme nom de connexion.

  8. Cliquez sur le bouton Next. L’écran Preferences s’ouvre.

  9. Si nécessaire, saisissez les valeurs par défaut pour l’utilisateur :

    • Entrepôt virtuel

    • Espace de noms sous la forme de nom_bdd ou nom_bdd.nom_schéma

    • Rôle

  10. Cliquez sur le bouton Finish. Snowflake affiche un message de réussite.

Utilisation de SQL

Utilisez la commande CREATE USER pour créer un utilisateur.

Important

Lorsque vous créez un utilisateur, si vous lui affectez un rôle par défaut, vous devez alors lui attribuer explicitement ce rôle. Par exemple :

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

GRANT ROLE myrole TO USER janesmith;

Notez que la commande GRANT ROLE vous permet d’assigner plusieurs rôles à un seul utilisateur. L’interface Web ne prend pas actuellement en charge la même fonctionnalité.

Réinitialisation du mot de passe d’un utilisateur

Les administrateurs peuvent modifier le mot de passe d’un utilisateur via l’interface Web ou en utilisant SQL.

Note

Les utilisateurs ne peuvent changer leur propre mot de passe qu’à travers l’interface Web. Pour plus d’informations, voir Modification de votre mot de passe/changement de rôle (session)/déconnexion.

Utilisation de l’interface Web

  1. Cliquez sur Account Account tab » Users.

  2. Cliquez sur une ligne de l’utilisateur pour la sélectionner, puis cliquez sur le bouton Reset Password. La boîte de dialogue Reset Password s’ouvre.

  3. Entrez le nouveau mot de passe de connexion pour l’utilisateur et confirmez le mot de passe.

  4. Laissez la case Force Password Change cochée pour contraindre l’utilisateur à changer son mot de passe lors de sa prochaine connexion ; sinon, décochez la case.

  5. Cliquez sur le bouton Finish.

Utilisation de SQL

Utilisez la commande ALTER USER pour entrer le mot de passe d’un utilisateur. Par exemple :

ALTER USER janesmith SET PASSWORD = 'H8MZRqa8gEe/kvHzvJ+Giq94DuCYoQXmfbb$Xnt' MUST_CHANGE_PASSWORD = TRUE;

Il est également possible d’utiliser la syntaxe ALTER USER … RESET PASSWORD pour générer une URL à partager avec l’utilisateur. L’URL ouvre une page Web sur laquelle l’utilisateur peut entrer le nouveau mot de passe. Par exemple :

ALTER USER janesmith RESET PASSWORD;

Note

  • L’URL générée n’est valide que pour une seule utilisation et expire après quatre heures.

  • L’exécution de l’instruction ALTER USER … RESET PASSWORD n’invalide pas le mot de passe actuel. L’utilisateur peut continuer à utiliser l’ancien mot de passe jusqu’à ce que le nouveau mot de passe soit défini.

Désactivation de la fonctionnalité de modification du mot de passe pour les utilisateurs

Les utilisateurs changent leur mot de passe Snowflake dans l’interface Web en cliquant sur le menu déroulant situé dans le coin supérieur droit (à côté du nom de connexion) » Change Password. La boîte de dialogue Select a New Password s’ouvre. La boîte de dialogue accepte le mot de passe actuel et le nouveau.

Vous pouvez éventuellement désactiver la possibilité pour les utilisateurs de votre compte de modifier leur propre mot de passe. Les administrateurs de compte peuvent continuer à modifier les mots de passe des utilisateurs à l’aide de l’interface Web sous Account Account tab » Users ou via SQL à l’aide de la commande ALTER USER.

Pour demander cette modification, contactez le support de Snowflake.

Désactivation/activation d’un utilisateur

La désactivation d’un utilisateur l’empêche de se connecter à Snowflake. Vous pouvez désactiver un utilisateur via l’interface Web ou en utilisant SQL.

Utilisation de l’interface Web

  1. Cliquez sur Account Account tab » Users.

  2. Cliquez sur une ligne de l’utilisateur pour la sélectionner, puis cliquez sur le bouton Disable User. Une boîte de dialogue de confirmation s’ouvre.

  3. Cliquez sur Yes pour désactiver l’utilisateur.

Pour activer un utilisateur, suivez les mêmes étapes, mais cliquez sur le bouton Enable User.

Utilisation de SQL

Utilisez la commande ALTER USER pour désactiver ou activer un utilisateur. Par exemple :

  • Désactiver un utilisateur :

    ALTER USER janesmith SET DISABLED = TRUE;
    
  • Activer un utilisateur :

    ALTER USER janesmith SET DISABLED = FALSE;
    

Déverrouillage d’un utilisateur

Si la connexion d’un utilisateur échoue après cinq tentatives consécutives, l’utilisateur ne peut plus tenter d’accéder à son compte pendant un certain temps (actuellement 15 minutes). Une fois la période de temps écoulée, le système supprime automatiquement le verrouillage, et l’utilisateur peut tenter de se connecter à nouveau.

Pour déverrouiller l’utilisateur avant que le temps soit écoulé, vous pouvez réinitialiser la minuterie en utilisant la commande ALTER USER.

L’exemple suivant réinitialise la minuterie à 0, ce qui déverrouille immédiatement l’utilisateur janesmith :

ALTER USER janesmith SET MINS_TO_UNLOCK= 0;

Astuce

Si un seul rôle a le privilège OWNERSHIP sur tous les utilisateurs de Snowflake, nous recommandons d’accorder le rôle à plusieurs utilisateurs. De cette façon, si un membre du rôle est verrouillé, un autre membre peut déverrouiller cet utilisateur.

Modification des paramètres de session pour un utilisateur

  • Pour afficher les paramètres de session d’un utilisateur, utilisez la syntaxe SQL suivante :

    SHOW PARAMETERS [ LIKE '<pattern>' ] FOR USER <name>
    
  • Pour modifier les paramètres de session d’un utilisateur, utilisez la syntaxe suivante :

    ALTER USER <name> SET <session_param> = <value>
    

    Par exemple, permettez à un utilisateur de rester connecté à Snowflake indéfiniment et sans temps mort :

    ALTER USER janesmith SET CLIENT_SESSION_KEEP_ALIVE = TRUE;
    
  • Pour rétablir la valeur par défaut d’un paramètre de session pour un utilisateur, utilisez la syntaxe suivante :

    ALTER USER <name> UNSET <session_param>
    

Modification d’autres propriétés de l’utilisateur

Vous pouvez modifier toutes les autres propriétés de l’utilisateur en utilisant la commande ALTER USER. Par exemple :

  • Remplacer le nom de famille de l’utilisateur janesmith par Jones :

    ALTER USER janesmith SET LAST_NAME = 'Jones';
    
  • Définir ou modifier l’entrepôt, l’espace de noms, le rôle primaire et les rôles secondaires par défaut pour l’utilisateur janesmith :

    ALTER USER janesmith SET DEFAULT_WAREHOUSE = mywarehouse DEFAULT_NAMESPACE = mydatabase.myschema DEFAULT_ROLE = myrole DEFAULT_SECONDARY_ROLES = ('ALL');
    

Affichage des utilisateurs

Vous pouvez afficher des informations sur les utilisateurs en utilisant SQL.

Utilisez les commandes DESCRIBE USER ou SHOW USERS pour afficher des informations sur un ou plusieurs utilisateurs.

Par exemple :

DESC USER janeksmith;

Abandon d’un utilisateur

La destruction (ou suppression) d’un utilisateur supprime les informations d’identification de l’utilisateur de Snowflake. Notez que tous les objets créés par l’utilisateur appartiennent en fait au rôle actif de l’utilisateur lorsque les objets ont été créés. Par conséquent, le fait de détruire un utilisateur n’a pas d’impact sur les objets qu’il a créés. Un autre utilisateur affecté au même rôle ou à un rôle supérieur dans la hiérarchie de rôles peut gérer les objets ou transférer la propriété à un autre rôle.

Utilisation de l’interface Web

  1. Cliquez sur Account Account tab » Users.

  2. Cliquez sur une ligne de l’utilisateur pour la sélectionner, puis cliquez sur le bouton Drop. Une boîte de dialogue de confirmation s’ouvre.

  3. Cliquez sur Yes pour détruire l’utilisateur.

Utilisation de SQL

Utilisez la commande DROP USER pour détruire un utilisateur.

DROP USER janesmith;