PostgreSQLLa base de données la plus sophistiquée au monde.
Documentation PostgreSQL 13.18 » Internes » Catalogues système » pg_authid

51.8. pg_authid

Le catalogue pg_authid contient les informations concernant les identifiants pour les autorisations d'accès aux bases de données (rôles). Un rôle englobe les concepts d'« utilisateur » et de « groupe ». Un utilisateur est essentiellement un rôle qui a l'attribut de connexion (rolcanlogin). Tout rôle (avec ou sans rolcanlogin) peut avoir d'autres rôles comme membres ; voir pg_auth_members.

Comme ce catalogue contient les mots de passe, il ne doit pas être lisible par tout le monde. pg_roles est une vue, lisible par tout le monde, de pg_authid qui masque le champ du mot de passe.

Chapitre 21 contient des informations détaillées sur les utilisateurs et sur la gestion des droits.

Comme l'identité des utilisateurs est identique pour tout le cluster de bases de données, pg_authid est partagé par toutes les bases du cluster ; il n'existe qu'une seule copie de pg_authid par cluster, non une par base de données.

Tableau 51.8. Colonnes de pg_authid

Type

Description

oid oid

Identifiant de ligne

rolname name

Nom du rôle

rolsuper bool

Le rôle est superutilisateur

rolinherit bool

Le rôle hérite automatiquement des droits des rôles dont il est membre

rolcreaterole bool

Le rôle peut créer d'autres rôles

rolcreatedb bool

Le rôle peut créer des bases de données

rolcanlogin bool

Le rôle peut se connecter, c'est-à-dire qu'il peut être donné comme identifiant d'autorisation de session.

rolreplication bool

Le rôle est un rôle de réplication. Ce type de rôle peut initier des connexions de réplication et créer/supprimer des slots de réplication.

rolbypassrls bool

Le rôle contourne chaque politique de sécurité niveau ligne. Voir Section 5.8 pour plus d'informations.

rolconnlimit int4

Pour les rôles qui peuvent se connecter, indique le nombre maximum de connexions concurrentes que le rôle peut initier. -1 signifie qu'il n'y a pas de limite, -2 indique que la base de données est invalide.

rolpassword text

Le mot de passe (éventuellement chiffré) ; NULL si aucun. Le format dépend de la forme de chiffrement utilisé.

rolvaliduntil timestamptz

Date d'expiration du mot de passe (utilisée uniquement pour l'authentification par mot de passe) ; NULL si indéfiniment valable


Pour un mot de passe chiffré en MD5, la colonne rolpassword commencera avec la chaîne md5 suivi d'un hachage MD5 hexadécimal sur 32 caractères. Le hachage MD5 sera à partir du mot de passe de l'utilisateur concaténé au nom de l'utilisateur. Par exemple, si l'utilisateur joe a pour mot de passe xyzzy, PostgreSQL enregistrera le hachage MD5 de xyzzyjoe.

Si le mot de passe est chiffré avec SCRAM-SHA-256, il a le format :

SCRAM-SHA-256$<nombre d'itération>:<sel>$<CléEnregistrée>:<CléServeur>
   

sel, CléEnregistré et CléServeur sont dans un format Base64. Ce format est le même que celui spécifié par la RFC 5803.

Un mot de passe qui ne suit aucun de ces formats est supposé non chiffré.