Le catalogue pg_init_privs enregistre des informations sur les droits initiaux des objets dans le système. Il existe une entrée pour chaque objet de la base qui n'a pas sa configuration initiale des droits.
Les objets peuvent avoir des droits initiaux, soit en ayant ces droits configurés quand le système est initialisé (par initdb) soit quand l'objet est créé lors d'un CREATE EXTENSION et que le script de l'extension configure les droits initiaux en utilisant la commande GRANT. Notez que le système gère automatiquement l'enregistrement des droits lors de l'exécution du script de l'extension et que les auteurs d'extension ont juste besoin d'utiliser les commandes GRANT et REVOKE dans leur scripts pour que les droits soient enregistrés. La colonne privtype indique si le droit initial a été configuré par initdb ou par une commande CREATE EXTENSION.
Les objects qui ont des droits initiaux configurés par initdb auront des entrées où privtype vaut 'i' alors que les objets qui ont des droits initiaux configurés par CREATE EXTENSION auront des entrées dont privtype vaut 'e'.
Tableau 50.28. Colonnes de pg_init_privs
Nom | Type | Références | Description |
---|---|---|---|
objoid | oid | Toute colonne OID | L'OID de l'objet spécifié |
classoid | oid | pg_class.oid | L'OID du catalogue spécifique où se trouve l'objet |
objsubid | int4 | Pour une colonne de table, c'est le numéro de la colonne (objoid et classoid font référence à la table elle-même). Pour tous les autres types d'objet, cette colonne vaut zéro. | |
privtype | char | Un code définissant le type de droit initial pour cet objet ; voir le texte. | |
initprivs | aclitem[] | Les droits d'accès initiaux ; voir GRANT(7) et REVOKE(7) pour les détails |