Conceptuellement, les rôles de la base sont totalement
   séparés des utilisateurs du système d'exploitation. En pratique,
   il peut être commode de maintenir une correspondance mais cela
   n'est pas requis. Les rôles sont globaux à toute une
   installation de groupe de bases de données (et non individuelle pour
   chaque base). Pour créer un rôle, utilisez la commande SQL
   CREATE ROLE :
   
CREATE ROLE nom_utilisateur;
   nom_utilisateur suit les règles des
   identifiants SQL : soit sans guillemets et sans caractères spéciaux,
   soit entre double guillemets (en pratique, vous voudrez surtout ajouter
   des options supplémentaires, comme LOGIN, à cette commande.
   Vous trouverez plus de détails ci-dessous). Pour supprimer un rôle existant,
   utilisez la commande analogue DROP
   ROLE :
DROP ROLE nom_utilisateur;
Pour une certaine facilité d'utilisation, les programmes createuser et dropuser sont fournis comme emballage de ces commandes SQL et peuvent être appelés depuis la ligne de commande du shell :
createusernom_utilisateurdropusernom_utilisateur
   Pour déterminer l'ensemble des rôles existants, examinez le catalogue
   système pg_roles existant, par exemple
SELECT rolname FROM pg_roles;
pour voir uniquement ceux capables de se connecter :
SELECT rolname FROM pg_roles WHERE rolcanlogin;
   La méta-commande \du du programme psql est
   aussi utile pour lister les rôles existants.
  
   Afin d'amorcer le système de base de données, un système récemment
   installé contient toujours un rôle prédéfini capable de se connecter.
   Ce rôle est un
   superutilisateur et aura le même nom que l'utilisateur
   du système d'exploitation qui a initialisé le groupe de bases de
   données, à moins que cela ne soit modifié en lançant la commande
   initdb. C'est habituel mais non requis de faire en
   sorte que ce rôle s'appelle
   postgres. Pour créer plus de rôles, vous devez
   d'abord vous connecter en tant que ce rôle initial.
  
   Chaque connexion au serveur de la base de données est faite au nom d'un
   certain rôle et ce rôle détermine les droits d'accès initiaux pour les
   commandes lancées sur cette connexion. Le nom du rôle
   à employer pour une connexion à une base particulière est indiqué
   par le client initialisant la demande de connexion, et ce, de la
   manière qui lui est propre.  Par exemple, le programme
   psql utilise l'option de ligne de commandes
   -U pour préciser sous quel rôle il se
   connecte. Beaucoup d'applications (incluant createuser
   et psql) utilisent par défaut le nom courant de
   l'utilisateur du système d'exploitation. Par conséquence, il peut souvent
   être pratique de maintenir une correspondance de nommage entre les rôles et
   les utilisateurs du système d'exploitation.
  
La configuration de l'authentification du client détermine avec quel rôle de la base, la connexion cliente donnée se connectera, comme cela est expliqué dans le Chapitre 21 (donc, un client n'est pas obligé de se connecter avec le rôle du même nom que son nom d'utilisateur dans le système d'exploitation ; de la même façon que le nom de connexion d'un utilisateur peut ne pas correspondre à son vrai nom). Comme le rôle détermine l'ensemble des droits disponibles pour le client connecté, il est important de configurer soigneusement les droits quand un environnement multi-utilisateurs est mis en place.