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.