Gestion des utilisateurs

Les administrateurs de sécurité et les administrateurs de comptes (c.-à-d. les utilisateurs ayant le rôle SECURITYADMIN ou supérieur) 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 :

Note

Seuls les administrateurs de sécurité (c’est-à-dire les utilisateurs ayant le rôle SECURITYADMIN) ou les utilisateurs ayant un rôle plus élevé peuvent créer, modifier ou détruire des utilisateurs.

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

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 8 caractères.

  • Doit contenir au moins 1 chiffre.

  • Doit contenir au moins 1 lettre majuscule et 1 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 8 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.

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.

De plus, Snowflake n’applique pas la politique de mot de passe Snowflake lorsqu’un mot de passe est défini pour la première fois (c.-à-d. lors de la création d’un utilisateur ou de la modification d’un utilisateur qui ne possède pas de mot de passe existant). Cela permet aux administrateurs de sécurité de décider s’il faut attribuer aux 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.

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;

Vous pouvez également 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 4 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 :

  • Changer le nom de famille de l’utilisateur janesmith en Jones :

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

    ALTER USER janesmith SET DEFAULT_WAREHOUSE = 'mywarehouse' DEFAULT_NAMESPACE = `mydatabase.myschema` DEFAULT_ROLE = `myrole`;
    

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;