Catégories :

Utilisateur et sécurité DDL (Utilisateurs)

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 , DESCRIBE USER , SHOW PARAMETERS

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 { [ 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
    SNOWFLAKE_SUPPORT = TRUE | FALSE
    DAYS_TO_EXPIRY = <integer>
    MINS_TO_UNLOCK = <integer>
    DEFAULT_WAREHOUSE = <string>
    DEFAULT_NAMESPACE = <string>
    DEFAULT_ROLE = <string>
    EXT_AUTHN_DUO = TRUE | FALSE
    EXT_AUTHN_UID = <string>
    MINS_TO_BYPASS_MFA = <integer>
    DISABLE_MFA = TRUE | FALSE
    RSA_PUBLIC_KEY = <string>
    RSA_PUBLIC_KEY_2 = <string>
    COMMENT = '<string_literal>'
objectParams ::=
    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>
    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

nom

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.

RENAME TO nouveau_nom

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 = 'chaîne' , 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 nom_rôle TO SECURITY INTEGRATION nom_intégration;

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 nom_rôle FROM SECURITY INTEGRATION nom_intégration , . REMOVE DELEGATED AUTHORIZATIONS FROM SECURITY INTEGRATION nom_intégration

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 :

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.

For more details about the object properties you can set (e.g. PASSWORD, LOGIN_NAME, DEFAULT_ROLE), see CREATE USER.

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 propriétés.

Paramètres d’objet (objectParams)

SET NETWORK_POLICY = chaîne [ ... ] , . UNSET NETWORK_POLICY  [ , ... ]

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

Actuellement, le seul paramètre d’objet que vous pouvez définir est NETWORK_POLICY, qui spécifie la stratégie réseau qui est active pour l’utilisateur.

Pour plus de détails sur ce paramètre d’objet, voir CREATE USER ou 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.

Paramètres de session (sessionParams)

SET nom_param_session = valeur_param [ ... ] , . UNSET nom_param_session [ , ... ]

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

  • 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 = 'chaîne' 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.

  • 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.

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;