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> } [ , ... ]
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>'objectParams ::= ENABLE_UNREDACTED_QUERY_SYNTAX_ERROR = TRUE | FALSE 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> 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 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 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.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
.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;
Supprimer un commentaire existant d’un utilisateur :
ALTER USER user1 UNSET COMMENT;