CREATE USER username [ WITH PASSWORD password ] [ CREATEDB | NOCREATEDB ] [ CREATEUSER | NOCREATEUSER ] [ IN GROUP groupname [, ...] ] [ VALID UNTIL 'abstime' ] |
nom de l'utilisateur.
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.
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.
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.
nom d'un groupe dans lequel entrer l'utilisateur comme nouveau membre.
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.
CREATE USER ajoutera un nouvel utilisateur à une instance Postgres.
Le nouvel utilisateur aura un usesysid de
SELECT MAX(usesysid) + 1 FROM pg_shadow; |
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 | +--------------------------+--------------------------+-------+ |
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 |