ALTER USER

Nom

ALTER USER -- modifie le compte d'un utilisateur de la base de données

Synopsis

ALTER USER nom [ [ WITH ] option [ ... ] ]

où option peut être :

    CREATEDB | NOCREATEDB
    | CREATEUSER | NOCREATEUSER 
    | [ ENCRYPTED | UNENCRYPTED ] PASSWORD 'mot_de_passe' 
    | VALID UNTIL 'dateheure'

ALTER USER nom RENAME TO nouveaunom

ALTER USER nom SET parametre { TO | = } { valeur | DEFAULT }
ALTER USER nom RESET parametre

Description

ALTER USER change les attributs d'un compte utilisateur de PostgreSQL. Les attributs non mentionnés dans la commande gardent leur valeur précédente.

La première variante de cette commande listée dans les synopsis change certains droits par utilisateur et les paramètres d'authentification. (Voir plus bas pour les détails.) Les super-utilisateurs des bases de données peuvent changer tous ces privilèges pour tout utilisateur. Les utilisateurs ordinaires peuvent seulement changer leur mot de passe.

La deuxième variante change le nom de l'utilisateur. Seul un super- utilisateur peut renommer des comptes utilisateurs. L'utilisateur de la session actuelle ne peut être renommé. (Connectez-vous avec un autre utilisateur si vous avez besoin de le faire.) Comme les mots de passe cryptés avec MD5 utilisent le nom de l'utilisateur en utilisant un élément cryptographique, renommer un utilisateur efface leur mot de passe MD5.

La troisième et la quatrième variante changent les paramètres de session par défaut pour une variable de configuration donnée. À chaque fois que l'utilisateur débute une nouvelle session, les valeurs spécifiées deviennent les valeurs par défaut de la session, quels que soient les paramètres présents dans postgresql.conf ou ceux reçus sur la ligne de commande par le postmaster. Les utilisateurs ordinaires peuvent changer les valeurs par défaut de leur propre session. Les super-utilisateurs peuvent changer les valeurs de session par défaut de tout le monde. Certaines variables ne peuvent pas être configurées de cette façon ou peuvent seulement être configurées par un superutilisateur.

Paramètres

nom

Le nom de l'utilisateur dont les attributs doivent être modifiés.

CREATEDB
NOCREATEDB

Ces clauses définissent la capacité d'un utilisateur à créer des bases de données. Si CREATEDB est spécifié, l'utilisateur aura le droit de créer ses propres bases de données. Utiliser NOCREATEDB interdira à l'utilisateur de créer des bases de données. (Si l'utilisateur est aussi un superutilisateur, alors ce paramètre n'aura aucun effet réel.)

CREATEUSER
NOCREATEUSER

Ces clauses déterminent si un utilisateur sera autorisé à créer de nouveaux utilisateurs lui-même. CREATEUSER fera aussi de l'utilisateur un superutilisateur, qui dépassera toutes les restrictions d'accès.

mot_de_passe

Le nouveau mot de passe à utiliser pour ce compte.

ENCRYPTED
UNENCRYPTED

Ces mots clés contrôlent si le mot de passe est stocké chiffré dans pg_shadow. (Voir CREATE USER pour plus d'informations sur ce choix.)

dateheure

La date (et optionnellement l'heure) à laquelle le mot de passe de l'utilisateur expire. Pour indiquer que le mot de passe n'expire jamais, utilisez le littéral 'infinity'.

nouveaunom

Le nouveau nom de l'utilisateur.

paramètre
valeur

Remet la valeur de ce paramètre de configuration de session à sa valeur par défaut. Si valeur vaut DEFAULT ou RESET (les deux sont équivalents), alors la valeur spécifique à l'utilisateur qui était enregistrée est supprimée, donc l'utilisateur héritera des valeurs générales du système dans ses nouvelles sessions. Utilisez RESET ALL pour supprimer toutes les valeurs enregistrées spécifiques à l'utilisateur.

Voir SET et Section 16.4 pour plus d'informations sur les valeurs possibles pour les paramètres et leurs valeurs.

Notes

Utilisez CREATE USER pour ajouter de nouveaux utilisateurs, et DROP USER pour supprimer un utilisateur.

ALTER USER ne permet pas de changer les groupes d'un utilisateur. Utilisez ALTER GROUP pour cela.

La clause VALID UNTIL définit une date d'expiration pour un mot de passe seulement, pas pour le compte utilisateur lui-même. En particulier, la date d'expiration n'est pas requise lors de la connexion en utilisant une méthode d'authentification par mot de passe.

Il est aussi possible de lier les valeurs par défaut d'une session sur une base de données spécifique plutôt que sur un utilisateur ; voir ALTER DATABASE. Les paramétrages spécifiques de l'utilisateur surchargent ceux de la base de données s'il y a un conflit.

Exemples

Changer le mot de passe d'un utilisateur :

ALTER USER davide WITH PASSWORD 'hu8jmn3';

Changer la date de fin de validité du mot de passe d'un utilisateur :

ALTER USER manuel VALID UNTIL 'Jan 31 2030';

Changer la date de fin de validité d'un utilisateur, en indiquant que son autorisation doit expirer à midi le 4 mai 2005 pour le fuseau horaire UTC+1 :

ALTER USER chris VALID UNTIL 'May 4 12:00:00 2005 +1';

Rendre un mot de passe valide indéfiniment :

ALTER USER fred VALID UNTIL 'infinity';

Donner à un utilisateur le droit de créer de nouvelles bases de données et de nouveaux utilisateurs :

ALTER USER miriam CREATEUSER CREATEDB;

Compatibilité

La commande ALTER USER est une extension de PostgreSQL. En effet, le standard SQL laisse la façon de définir les utilisateurs au choix du SGBD.

Voir aussi

CREATE USER, DROP USER, SET