Documentation PostgreSQL 14.22 » Internes » Catalogues système » `pg_authid`

Précédent | Niveau supérieur | Suivant
52.7. `pg_attribute` | Sommaire | 52.9. `pg_auth_members`

## 52.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 22 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 52.8. Colonnes de `pg_authid`

Type Description
`oid` `oid` Identifiant de ligne
`rolname` `name` Nom du rôle
`rolsuper` `bool` Le rôle est super-utilisateur
`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` Mot de passe 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>

où `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.