CREATE USER

Nom

CREATE USER — crée un compte pour un nouvel utilisateur.
CREATE USER username
    [ WITH PASSWORD password ]
    [ CREATEDB   | NOCREATEDB ]
    [ CREATEUSER | NOCREATEUSER ]
    [ IN GROUP     groupname [, ...] ]
    [ VALID UNTIL  'abstime' ]
  

Entrées

username

nom de l'utilisateur.

password

La clause WITH PASSWORD place le mot de passe utilisateur dans la table "pg_shadow". Pour cette raison "pg_shadow" n'est plus accessible à l'instance Postgres où le mot de passe utilisateur Postgres est initialement placé à NULL.

Quand un mot de passe utilisateur dans la table pg_shadow est NULL, l'authentification procède historiquement (HBA, PG_PASSWORD, etc). Cependant, si un mot de passe est placé pour un utilisateur, une nouvelle authentification système supplante n'importe quelle autre configurée pour l'instance Postgres, et le mot de passe stocké dans la table pg_shadow est utilisé pour l'authentification. Pour plus de détails sur les fonctions authentification système voir pg_crypt(3). Si la clause WITH PASSWORD est omise, le mot de passe utilisateur est placé dans une chaîne vide avec des égalités à une valeur NULL dans le système d'authentification ci-dessus.

CREATEDB, NOCREATEDB

Ces clauses définissent la possibilité pour un utilisateur de créer des bases. Si CREATEDB est spécifié, l'utilisateur spécifié aura la permission de créer ses propres bases. En utilisant NOCREATEDB l'utilisateur ne pourra pas créer de bases. Si cette clause est omise, NOCREATEDB est utilisé par défaut.

CREATEUSER, NOCREATEUSER

Ces clauses déterminent si un utilisateur pourra créer des utilisateurs dans une instance de Postgres. Si cette clause est omise c'est NOCREATEUSER qui est la valeur par défaut, et donc n'aura pas la permission de créer des utilisateurs.

groupname

nom d'un groupe dans lequel entrer l'utilisateur comme nouveau membre.

abstime

La clause VALID UNTIL place une date absolue après laquelle le login utilisateur Postgres n'est plus valide. Notez que si un utiisateur n'a pas de mot de passe défini dans la table pg_shadow, la date valid until ne sera pas vérifiée pendant l'authentification de l'utilisateur. Si cette clause est omise, une valeur NULL est stockée dans pg_shadow pour cet attribut, et le login sera valide tout le temps.

Sorties

CREATE USER

message retourné si la commande est réussie.

Description

CREATE USER ajoutera un nouvel utilisateur à une instance Postgres.

Le nouvel utilisateur aura un usesysid de
SELECT MAX(usesysid) + 1 FROM pg_shadow;
   
Ceci indique que le usesysid de l'utilisateur Postgres ne correspond pas à celui du système (OS) L'exception à cette règle est l'utilisateur 'postgres', pour lequel l'id du système (OS) est utilisé comme usesysid pendant le processus initdb. Si vous voulez toujours que l'identifiant système de l'utilisateur et le usesysid soient utilisés pour un utilisateur donné utilisez le script createuser fournit avec la distribution Postgres.

Notes

CREATE USER est une extension de langage Postgres.

Utilisez DROP USER ou ALTER USER pour supprimer ou modifier un compte utilisateur.

Voir la table pg_shadow pour plus d'information.

   Table    = pg_shadow
   +--------------------------+--------------------------+-------+
   |          Field           |          Type            | Length|
   +--------------------------+--------------------------+-------+
   | usename                  | name                     |    32 |
   | usesysid                 | int4                     |     4 |
   | usecreatedb              | bool                     |     1 |
   | usetrace                 | bool                     |     1 |
   | usesuper                 | bool                     |     1 |
   | usecatupd                | bool                     |     1 |
   | passwd                   | text                     |   var |
   | valuntil                 | abstime                  |     4 |
   +--------------------------+--------------------------+-------+
   

Utilisation

Créer un utilisateur sans mot de passe
CREATE USER jonathan
   

créer un utilisateur avec un mot de passe
CREATE USER davide WITH PASSWORD jw8s0F4
   

créer un utilisateur avec un mot de passe, dont le compte est valide jusqu'à la fin 2001. Notez qu'après une seconde passée en 2002, le compte n'est plus valide :
CREATE USER miriam WITH PASSWORD jw8s0F4 VALID UNTIL 'Jan 1 2002'
   

créer un compte où l'utilisateur peut créer des bases :
CREATE USER manuel WITH PASSWORD jw8s0F4 CREATEDB
   

Compatibilité

SQL92

Il n'y a pas de clause CREATE USER en SQL92.