ALTER USER

Modifie les propriétés et les paramètres de session/objet d’un utilisateur existant dans le système :

  • Les administrateurs peuvent utiliser cette commande pour modifier les propriétés et les paramètres par défaut de tous les utilisateurs pour lesquels les administrateurs disposent des privilèges appropriés.

  • Les utilisateurs individuels peuvent utiliser cette commande pour modifier des propriétés spécifiques et tout paramètre de session par défaut pour eux-mêmes. Pour plus de détails, voir Notes sur l’utilisation (dans ce chapitre).

Peut également être utilisé pour annuler toutes les requêtes (et d’autres instructions SQL) soumises par l’utilisateur.

Voir aussi :

CREATE USER , DROP USER, SHOW PARAMETERS, SHOW USERS , DESCRIBE USER

Syntaxe

ALTER USER [ IF EXISTS ] [ <name> ] RENAME TO <new_name>

ALTER USER [ IF EXISTS ] [ <name> ] RESET PASSWORD

ALTER USER [ IF EXISTS ] [ <name> ] ABORT ALL QUERIES

ALTER USER [ IF EXISTS ] [ <name> ] ADD DELEGATED AUTHORIZATION OF ROLE <role_name> TO SECURITY INTEGRATION <integration_name>

ALTER USER [ IF EXISTS ] [ <name> ] REMOVE DELEGATED { AUTHORIZATION OF ROLE <role_name> | AUTHORIZATIONS } FROM SECURITY INTEGRATION <integration_name>

ALTER USER [ IF EXISTS ] [ <name> ] SET { AUTHENTICATION | PASSWORD | SESSION } POLICY <policy_name>

ALTER USER [ IF EXISTS ] [ <name> ] UNSET { AUTHENTICATION | PASSWORD | SESSION } POLICY

ALTER USER [ IF EXISTS ] [ <name> ] SET TAG <tag_name> = '<tag_value>' [ , <tag_name> = '<tag_value>' ... ]

ALTER USER [ IF EXISTS ] [ <name> ] UNSET TAG <tag_name> [ , <tag_name> ... ]

ALTER USER [ IF EXISTS ] [ <name> ] SET { [ objectProperties ] [ objectParams ] [ sessionParams ] }

ALTER USER [ IF EXISTS ] [ <name> ] UNSET { <object_property_name> | <object_param_name> | <session_param_name> } [ , ... ]
Copy

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
    DAYS_TO_EXPIRY = <integer>
    MINS_TO_UNLOCK = <integer>
    DEFAULT_WAREHOUSE = <string>
    DEFAULT_NAMESPACE = <string>
    DEFAULT_ROLE = <string>
    DEFAULT_SECONDARY_ROLES = ( 'ALL' )
    MINS_TO_BYPASS_MFA = <integer>
    DISABLE_MFA = TRUE | FALSE
    RSA_PUBLIC_KEY = <string>
    RSA_PUBLIC_KEY_FP = <string>
    RSA_PUBLIC_KEY_2 = <string>
    RSA_PUBLIC_KEY_2_FP = <string>
    COMMENT = '<string>'
Copy
objectParams ::=
    ENABLE_UNREDACTED_QUERY_SYNTAX_ERROR = TRUE | FALSE
    NETWORK_POLICY = <string>
Copy
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>
    S3_STAGE_VPCE_DNS_NAME = <string>
    SEARCH_PATH = <string>
    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>
Copy

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

name

Spécifie l’identifiant que l’utilisateur doit modifier. Si l’identificateur contient des espaces ou des caractères spéciaux, toute la chaîne doit être délimitée par des guillemets doubles. Les identificateurs entre guillemets doubles sont également sensibles à la casse.

Si l’identificateur est omis, l’instruction modifie l’utilisateur actif (c’est-à-dire connecté). Les restrictions décrites dans Notes sur l’utilisation (dans cette rubrique) s’appliquent.

RENAME TO new_name

Indique le nouvel identifiant de l’utilisateur ; il doit être unique pour votre compte.

Pour plus de détails, voir Exigences relatives à l’identificateur.

RESET PASSWORD

Génère une URL, que vous pouvez partager avec l’utilisateur, qui ouvre une page Web à partir de laquelle l’utilisateur peut entrer un nouveau mot de passe. L’URL générée n’est valide que pour une seule utilisation et expire après 4 heures.

La spécification de ce paramètre n’invalide pas le mot de passe actuel de l’utilisateur. L’utilisateur peut continuer à utiliser son mot de passe actuel jusqu’à ce qu’il le réinitialise par le biais de l’URL.

Si vous souhaitez invalider leur mot de passe actuel, utilisez plutôt la SET PASSWORD = 'string', qui modifie leur mot de passe en une nouvelle valeur.

ABORT ALL QUERIES

Annule toutes les requêtes et autres instructions SQL en cours d’exécution ou planifiées par l’utilisateur, quel que soit l’entrepôt sur lequel les requêtes sont exécutées ou planifiées.

Notez que l’utilisateur peut toujours se connecter à Snowflake et lancer de nouvelles requêtes.

Si vous souhaitez annuler toutes les requêtes en cours d’exécution/planifiées et empêcher l’utilisateur de se connecter à Snowflake ou de lancer de nouvelles requêtes, spécifiez plutôt SET DISABLED = TRUE.

ADD DELEGATED AUTHORIZATION OF ROLE role_name TO SECURITY INTEGRATION integration_name;

Ajoute une autorisation à l’utilisateur d’initier une session à l’aide d’un rôle spécifié pour une intégration particulière.

Pour plus de détails, voir Ajout d’autorisations déléguées pour le consentement OAuth de l’utilisateur.

REMOVE DELEGATED AUTHORIZATION OF ROLE role_name FROM SECURITY INTEGRATION integration_name , . REMOVE DELEGATED AUTHORIZATIONS FROM SECURITY INTEGRATION integration_name

Révoque le consentement de l’utilisateur :

  • La première syntaxe révoque le consentement d’une intégration de sécurité spécifiée pour un rôle spécifié. Cela a pour effet de révoquer tout jeton d’accès OAuth associé à l’intégration et au rôle spécifique.

  • La deuxième syntaxe révoque tout consentement d’une intégration de sécurité spécifiée. Cela a pour effet de révoquer tout jeton d’accès OAuth associé à l’intégration.

Pour plus de détails, voir :

{ AUTHENTICATION | PASSWORD | SESSION } POLICY policy_name

Spécifie l’une des politiques suivantes pour l’utilisateur :

TAG tag_name = 'tag_value' [ , tag_name = 'tag_value' , ... ]

Spécifie le nom de la balise et la valeur de la chaîne de la balise.

La valeur de la balise est toujours une chaîne de caractères et le nombre maximum de caractères pour la valeur de la balise est 256.

Pour plus d’informations sur la spécification des balises dans une instruction, voir Quotas de balises pour les objets et les colonnes.

Propriétés de l’objet (objectProperties)

SET property_name = property_value [ ... ] , . UNSET property_name [ , ... ]

Spécifie une (ou plusieurs) propriétés d’objet à définir ou à désactiver pour l’utilisation. La suppression d’une propriété d’objet la réinitialise à sa valeur par défaut.

Pour plus de détails sur les propriétés que vous pouvez définir pour un objet (par ex. PASSWORD, LOGIN_NAME, DEFAULT_ROLE), voir CREATE USER.

Note

Les propriétés des objets EXT_AUTHN_DUO et EXT_AUTHN_UID ne peuvent pas être modifiées.

Pour activer ou désactiver l’authentification multifactorielle, modifiez la propriété DISABLE_MFA de l’utilisateur. Lorsqu’un administrateur de compte exécute la commande ALTER USER pour définir DISABLE_MFA sur TRUE, la valeur de la propriété EXT_AUTHN_DUO est automatiquement définie sur FALSE.

Consultez Notes sur l’utilisation (dans cette rubrique) pour des détails plus généraux sur la définition et la suppression des propriétés.

Paramètres d’objet (objectParams)

SET ...

Spécifie un (ou plusieurs) paramètre(s) à définir pour l’utilisateur (séparés par des espaces, des virgules ou de nouvelles lignes) :

ENABLE_UNREDACTED_QUERY_SYNTAX_ERROR = { TRUE | FALSE }

Contrôlez la manière dont les requêtes qui échouent en raison d’erreurs de syntaxe ou d’analyse apparaissent dans l’historique des requêtes. Si FALSE, le contenu d’une requête qui a échoué est rédigé dans les vues, les pages et les fonctions qui fournissent un historique des requêtes.

Ce paramètre détermine le comportement de l’utilisateur qui voit l’historique de la requête, et non de l’utilisateur qui a exécuté la requête.

Seuls les utilisateurs dont le rôle est doté du privilège AUDIT ou qui en héritent peuvent définir le paramètre ENABLE_UNREDACTED_QUERY_SYNTAX_ERROR.

NETWORK_POLICY = string

Spécifie la politique réseau qui est active pour l’utilisateur.

Consultez également Notes sur l’utilisation (dans cette rubrique) pour des détails plus généraux sur la définition et la suppression des paramètres.

UNSET ...

Spécifie les propriétés à désactiver pour l’utilisateur, qui les réinitialise aux valeurs par défaut.

  • NETWORK_POLICY

  • SESSION POLICY

  • TAG tag_name [ , tag_name ... ]

Paramètres de session (sessionParams)

SET session_param_name = param_value [ ... ] , . UNSET session_param_name [ , ... ]

Spécifie un (ou plusieurs) paramètres de session à définir ou à désactiver pour l’utilisateur. La suppression d’un paramètre de session le réinitialise à sa valeur par défaut.

Pour plus de détails sur les paramètres de session que vous pouvez définir (ABORT_DETACHED_SESSION, AUTOCOMMIT, etc.), voir Paramètres.

Consultez également Notes sur l’utilisation (dans cette rubrique) pour des détails plus généraux sur la définition et la suppression des paramètres.

Notes sur l’utilisation

  • Seul le rôle ayant le privilège OWNERSHIP sur l’utilisateur, ou un rôle supérieur, peut exécuter cette commande pour modifier la plupart des propriétés de l’utilisateur.

    Astuce

    Lorsque vous changez le mot de passe d’un utilisateur avec SET PASSWORD = 'string', nous vous recommandons de spécifier aussi MUST_CHANGE_PASSWORD = TRUE pour forcer l’utilisateur à se connecter à l’interface Web et à changer son mot de passe avant de pouvoir se connecter à Snowflake par le biais d’une tout autre interface (p. ex. SnowSQL ou une autre application client).

    Sinon, utilisez RESET PASSWORD pour générer une URL vers une page Web à laquelle l’utilisateur peut accéder pour changer son mot de passe.

  • Les utilisateurs individuels peuvent exécuter la commande ALTER USER sur eux-mêmes (c’est-à-dire, en spécifiant leur identificateur/nom d’utilisateur dans la commande) et modifier ce qui suit :

    • DEFAULT_WAREHOUSE

    • DEFAULT_NAMESPACE

    • DEFAULT_ROLE

    • L’un de leurs paramètres de session par défaut

    Notez que les utilisateurs ne peuvent pas utiliser cette commande pour modifier leur mot de passe. Pour des raisons de sécurité, Snowflake autorise les utilisateurs à changer leurs mots de passe uniquement depuis l’interface Web.

    Cependant, un administrateur ayant les privilèges appropriés peut utiliser cette commande avec SET PASSWORD = 'string' pour modifier le mot de passe d’un utilisateur.

    Astuce

    Lorsque vous changez le mot de passe d’un utilisateur, nous vous recommandons de spécifier MUST_CHANGE_PASSWORD = TRUE pour forcer l’utilisateur à se connecter à l’interface Web et à changer son mot de passe avant de pouvoir se connecter à Snowflake par le biais d’une tout autre interface (p. ex. SnowSQL ou une autre application client).

    Sinon, utilisez RESET PASSWORD pour générer une URL vers une page Web à laquelle l’utilisateur peut accéder pour changer son mot de passe.

  • Une instruction ALTER USER ne vérifie pas l’existence des objets par défaut (DEFAULT_WAREHOUSE, DEFAULT_NAMESPACE, et DEFAULT_ROLE). Notez que DEFAULT_SECONDARY_ROLES n’accepte pas un nom d’objet comme valeur, mais une instruction ALTER USER vérifie qu’une valeur prise en charge est spécifiée.

  • Vous pouvez définir et annuler plusieurs propriétés d’objet et/ou paramètres d’objet/session avec une seule instruction ALTER :

    • Lorsque vous définissez plusieurs propriétés/paramètres, séparez-les par des espaces vides, des virgules ou de nouvelles lignes.

    • Lors de la suppression de plusieurs propriétés/paramètres, ils doivent être séparés par une virgule. Lors de la désactivation d’une propriété ou d’un paramètre, spécifiez seulement le nom ; si vous spécifiez une valeur pour la propriété/le paramètre, vous obtiendrez une erreur.

  • Si vous spécifiez SET DISABLED = TRUE pour un utilisateur :

    • Toutes les requêtes et autres instructions SQL en cours d’exécution ou programmées par l’utilisateur sont annulées et l’utilisateur ne peut pas lancer d’autres requêtes.

    • L’utilisateur ne peut plus accéder à Snowflake et ne peut plus se connecter.

    Si vous souhaitez seulement annuler toutes les requêtes programmées/instructions en cours d’exécution pour un utilisateur, utilisez plutôt ABORT ALL QUERIES.

  • 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

Renommer user1 en user2 :

ALTER USER user1 RENAME TO user2;
Copy

Définissez le mot de passe d’un utilisateur nommé user1 en H8MZRqa8gEe/kvHzvJ+Giq94DuCYoQXmfbb$Xnt et demandez à l’utilisateur de modifier son mot de passe en se connectant à l’interface Web de Snowflake :

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

Supprimer un commentaire existant d’un utilisateur :

ALTER USER user1 UNSET COMMENT;
Copy