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> ] mfaActions
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> } [ , ... ]
Où :
mfaActions ::= { ENROLL MFA SET DEFAULT_MFA_METHOD = { PASSKEY | TOTP | DUO } REMOVE MFA METHOD <mfa_method> MODIFY MFA METHOD <mfa_method> SET COMMENT = '<string>' }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> TYPE = PERSON | SERVICE | LEGACY_SERVICE | NULL COMMENT = '<string>'objectParams ::= ENABLE_UNREDACTED_QUERY_SYNTAX_ERROR = TRUE | FALSE ENABLE_UNREDACTED_SECURE_OBJECT_ERROR = TRUE | FALSE NETWORK_POLICY = <string> PREVENT_UNLOAD_TO_INLINE_URL = TRUE | FALSE PREVENT_UNLOAD_TO_INTERNAL_STAGES = TRUE | FALSEsessionParams ::= ABORT_DETACHED_QUERY = TRUE | FALSE AUTOCOMMIT = TRUE | FALSE BINARY_INPUT_FORMAT = <string> BINARY_OUTPUT_FORMAT = <string> DATE_INPUT_FORMAT = <string> DATE_OUTPUT_FORMAT = <string> DEFAULT_NULL_ORDERING = <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>
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 d’informations, 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 Quota de balise pour les objets.
Propriétés d’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.
TYPE = { PERSON | SERVICE | LEGACY_SERVICE | NULL }
Modifie le type d’utilisateur. Vous pouvez définir cette propriété pour différencier les utilisateurs humains, de services et de services hérités. Pour plus d’informations sur les caractéristiques de ces types d’utilisateurs, voir Types d’utilisateurs.
PERSON
Un utilisateur humain qui interagit avec Snowflake.
SERVICE
Un utilisateur qui est un service ou une application qui interagit avec Snowflake sans intervention humaine.
Si un utilisateur a sa propriété
TYPE
définie surSERVICE
avec la commande ALTER USER, les propriétés incompatibles restent stockées, mais ne sont pas renvoyées par des commandes telles que DESCRIBE USER. Les propriétés incompatibles ne peuvent pas être définies à l’aide de la commande ALTER USER.Si un utilisateur, dont la propriété
TYPE
est définie surSERVICE
, est remplacé par un utilisateur dont la propriétéTYPE
est définie surPERSON
ouNULL
, les propriétés incompatibles sont restaurées et peuvent être modifiées, y compris la propriétéPASSWORD
.LEGACY_SERVICE
Un utilisateur dont la propriété
TYPE
est réglée surLEGACY_SERVICE
représente une intégration non interactive. Il est similaire àSERVICE
, mais permet l’authentification par mot de passe et par SAML.NULL
Les fonctionnalités sont les mêmes que celles de PERSON.
DISABLE_MFA = { TRUE | FALSE }
L’effet de ce paramètre dépend de l’inscription volontaire ou obligatoire de l’utilisateur à MFA.
Si l’utilisateur est soumis à une politique d’authentification qui l’oblige à utiliser MFA, définir ce paramètre sur TRUE supprime les méthodes MFA pour l’utilisateur. La prochaine fois que l’utilisateur se connectera, il sera invité à ajouter une nouvelle méthode MFA qu’il pourra utiliser comme second facteur d’authentification.
Si l’utilisateur s’est volontairement inscrit à MFA, définir ce paramètre sur TRUE permet à l’utilisateur du mot de passe de s’authentifier sans second facteur d’authentification.
Pour plus d’informations sur les autres propriétés d’objet que vous pouvez définir (par exemple, PASSWORD, LOGIN_NAME, DEFAULT_ROLE), voir CREATE USER.
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.
ENABLE_UNREDACTED_SECURE_OBJECT_ERROR = { TRUE | FALSE }
Contrôle si les messages d’erreur relatifs aux objets sécurisés sont expurgés dans les métadonnées. Pour plus d’informations sur l’expurgation des messages d’erreur pour les objets sécurisés, voir Objets sécurisés : Réaction aux informations contenues dans les messages d’erreur.
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_SECURE_OBJECT_ERROR.
Lorsque vous utilisez la commande ALTER USER pour définir le paramètre sur
TRUE
pour un utilisateur particulier, modifiez l’utilisateur qui doit voir les messages d’erreur expurgés dans les métadonnées, et non l’utilisateur qui a provoqué l’erreur.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.
Actions d’authentification multifactorielle (MFA) (mfaActions)¶
user ENROLL MFA
Inscrit l’utilisateur spécifié dans l’authentification multifactorielle (MFA) et l’invite à ajouter un deuxième facteur d’authentification.
Si l’utilisateur dispose d’un e-mail vérifié, Snowflake lui envoie un e-mail l’invitant à ajouter une méthode d’authentification MFA.
Si l’utilisateur n’a pas d’e-mail vérifié, Snowflake renvoie l’URL de la page qui invite l’utilisateur à ajouter une méthode d’authentification MFA.
SET DEFAULT_MFA_METHOD = { PASSKEY | TOTP | DUO }
Si l’utilisateur actuel a plus d’une méthode MFA, spécifie celle qui sera utilisée comme deuxième facteur d’authentification.
user REMOVE MFA METHOD mfa_method
Supprime une méthode MFA que l’utilisateur spécifié a précédemment définie. L’utilisateur ne peut plus utiliser la méthode MFA comme deuxième facteur d’authentification.
Pour obtenir l’identificateur de
mfa_method
, exécutez la commande SHOW MFA METHODS et cherchez la valeur dans la colonnename
.[ user ] MODIFY MFA METHOD mfa_method SET COMMENT = 'string'
Paramètre un nom descriptif pour la méthode MFA spécifiée.
Pour obtenir l’identificateur de
mfa_method
, exécutez la commande SHOW MFA METHODS et cherchez la valeur dans la colonnename
.Les utilisateurs peuvent omettre
user
afin de définir un nom descriptif pour leurs propres méthodes MFA.
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 aussiMUST_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.Seuls les utilisateurs ayant le rôle ACCOUNTADMIN peuvent définir les paramètres suivants :
PREVENT_UNLOAD_TO_INLINE_URL
PREVENT_UNLOAD_TO_INTERNAL_STAGES
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
, etDEFAULT_ROLE
). Notez queDEFAULT_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
.Si la propriété
TYPE
de l’utilisateur estSERVICE
, les commandes suivantes ne peuvent pas être utilisées :ALTER USER RESET PASSWORD
ALTER USER SET DISABLE_MFA = TRUE
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;
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;
Changez le type d’utilisateur en une application qui interagit avec Snowflake de manière programmatique :
ALTER USER user1 SET TYPE = SERVICE;
Supprimer un commentaire existant d’un utilisateur :
ALTER USER user1 UNSET COMMENT;
N’activez aucun rôle secondaire par défaut :
ALTER USER user1 SET DEFAULT_SECONDARY_ROLES = ();
Activer tous les rôles secondaires par défaut :
ALTER USER user1 UNSET DEFAULT_SECONDARY_ROLES;
OR
ALTER USER user1 SET DEFAULT_SECONDARY_ROLES = ('ALL');