PostgreSQLLa base de données la plus sophistiquée au monde.

createuser

createuser — Définir un nouveau compte utilisateur PostgreSQL

Synopsis

createuser [option...] [nom_utilisateur]

Description

createuser crée un nouvel utilisateur PostgreSQL™ (ou, plus précisément, un rôle). Seuls les superutilisateurs et les utilisateurs disposant du droit CREATEROLE peuvent créer de nouveaux utilisateurs. createuser ne peut de ce fait être invoqué que par un utilisateur pouvant se connecter en superutilisateur ou en utilisateur ayant le droit CREATEROLE.

Pour créer un superutilisateur, il est impératif de se connecter en superutilisateur ; la simple connexion en utilisateur disposant du droit CREATEROLE n'est pas suffisante. Être superutilisateur implique la capacité d'outrepasser toutes les vérifications de droits d'accès à la base de données ; les privilèges de superutilisateur ne peuvent pas être accordés à la légère.

createuser est un enrobage de la commande SQL CREATE ROLE. Il n'y a pas de différence réelle entre la création d'utilisateurs par cet outil ou au travers d'autres méthodes d'accès au serveur.

Options

createuser accepte les arguments suivant en ligne de commande 

nomutilisateur

Le nom de l'utilisateur à créer. Ce nom doit être différent de tout rôle de l'instance courante de PostgreSQL™.

-s, --superuser

Le nouvel utilisateur a les privilèges superutilisateur.

-S, --no-superuser

Le nouvel utilisateur n'a pas les privilèges superutilisateur. Comportement par défaut.

-d, --createdb

Le nouvel utilisateur est autorisé à créer des bases de données.

-D, --no-createdb

Le nouvel utilisateur n'est pas autorisé à créer des bases de données. Comportement par défaut.

-r, --createrole

Le nouvel utilisateur est autorisé à créer de nouveaux rôles (il possède le privilège CREATEROLE).

-R, --no-createrole

Le nouvel utilisateur n'est pas autorisé à créer de nouveaux rôles. Comportement par défaut.

-l, --login

Le nouvel utilisateur est autorisé à se connecter (son nom peut être utilisé comme identifiant initial de session). Comportement par défaut.

-L, --no-login

Le nouvel utilisateur n'est pas autorisé à se connecter. (Un rôle sans droit de connexion est toujours utile pour gérer les droits de la base de données.)

-i, --inherit

Le nouveau rôle hérite automatiquement des droits des rôles dont il est membre. Comportement par défaut.

-I, --no-inherit

Le nouveau rôle n'hérite pas automatiquement des droits des rôles dont il est membre.

-c number, --connection-limit number

Configure le nombre maximum de connexions simultanées pour le nouvel utilisateur. Par défaut, il n'y a pas de limite.

-P, --pwprompt

L'utilisation de cette option impose à createuser d'afficher une invite pour la saisie du mot de passe du nouvel utilisateur. Cela n'a pas d'utilité si l'authentification par mot de passe n'est pas envisagée.

-E, --encrypted

Le mot de passe de l'utilisateur est stocké chiffré dans la base. Si cette option n'est pas précisée, la gestion par défaut des mots de passe est utilisée.

-N, --unencrypted

Le mot de passe de l'utilisateur n'est pas stocké chiffré. Si cette option n'est pas précisée, la gestion par défaut des mots de passe est utilisée.

-e, --echo

Les commandes engendréee par createuser et envoyées au serveur sont affichées.

-q, --quiet

Aucune réponse n'est affichée.

Le nom, ou toute autre information manquante non fournie sur la ligne de commande, est automatiquement demandée.

createuser accepte aussi les arguments suivant en ligne de commande pour les paramètres de connexion :

-h hôte, --host hôte

Le nom de l'hôte sur lequel le serveur est en cours d'exécution. Si la valeur commence avec un slash (/), elle est utilisée comme répertoire du socket de domaine Unix.

-p port, --port port

Le port TCP ou l'extension du fichier socket de domaine Unix sur lequel le serveur attend des connexions.

-U nomutilisateur, --username nomutilisateur

Nom de l'utilisateur utilisé pour la connexion (pas celui à créer).

-W, --password

Un mot de passe est obligatoirement demandé (pour la connexion au serveur, pas celui du nouvel utilisateur).

Environnement

PGHOST, PGPORT, PGUSER

Paramètres de connexion par défaut

Cet outil, comme la plupart des autres outils PostgreSQL™, utilise aussi les variables d'environnement supportées par la bibliothèque libpq (voir Section 29.12, « Variables d'environnement »).

Diagnostiques

En cas de problèmes, on peut consulter CREATE ROLE et psql(1) qui fournissent des informations sur les problèmes potentiels et les messages d'erreur. Le serveur de la base de données doit être en cours d'exécution sur l'hôte cible. De plus, tout paramétrage de connexion par défaut et toute variable d'environnement utilisée par le client de la bibliothèque libpq s'applique.

Exemples

Créer un utilisateur joe sur le serveur de bases de données par défaut :

$ createuser joe
Shall the new role be a superuser? (y/n) n
Shall the new role be allowed to create databases? (y/n) n
Shall the new role be allowed to create more new roles? (y/n) n
CREATE USER

Créer le même utilisateur, joe, sur le serveur eden, port 5000, sans interaction, avec affichage de la commande sous-jacente :

$ createuser -h eden -p 5000 -S -D -R -e joe
CREATE ROLE joe NOSUPERUSER NOCREATEDB NOCREATEROLE INHERIT LOGIN;
CREATE ROLE

Créer l'utilisateur joe, superutilisateur, et lui affecter immédiatement un mot de passe :

$ createuser -P -s -e joe
Enter password for new role: xyzzy
Enter it again: xyzzy
CREATE ROLE joe PASSWORD 'xyzzy' SUPERUSER CREATEDB CREATEROLE INHERIT LOGIN;
CREATE ROLE

Dans l'exemple ci-dessus, le nouveau mot de passe n'est pas affiché lorsqu'il est saisi. Il ne l'est ici que pour plus de clareté. Néanmoins, le mot de passe apparaît lors de l'affichage de la commande engendrée -- il est préférable de ne pas utiliser l'option -e lors de l'affectation d'un mot de passe si quelqu'un peut voir l'écran.

Voir aussi

dropuser(1), CREATE ROLE