## 51.28. `pg_init_privs`

The catalog `pg_init_privs` records information about the initial privileges of objects in the system. There is one entry for each object in the database which has a non-default (non-NULL) initial set of privileges.

Objects can have initial privileges either by having those privileges set when the system is initialized (by initdb) or when the object is created during a `CREATE EXTENSION` and the extension script sets initial privileges using the `GRANT` system. Note that the system will automatically handle recording of the privileges during the extension script and that extension authors need only use the `GRANT` and `REVOKE` statements in their script to have the privileges recorded. The `privtype` column indicates if the initial privilege was set by initdb or during a `CREATE EXTENSION` command.

Objects which have initial privileges set by initdb will have entries where `privtype` is `'i'`, while objects which have initial privileges set by `CREATE EXTENSION` will have entries where `privtype` is `'e'`.

Table 51.28. `pg_init_privs` Columns

Name | Type | References | Description
--- | --- | --- | ---
`objoid` | `oid` | any OID column | The OID of the specific object
`classoid` | `oid` | ``pg_class`.oid` | The OID of the system catalog the object is in
`objsubid` | `int4` |  | For a table column, this is the column number (the `objoid` and `classoid` refer to the table itself). For all other object types, this column is zero.
`privtype` | `char` |  | A code defining the type of initial privilege of this object; see text
`initprivs` | `aclitem[]` |  | The initial access privileges; see Section 5.7 for details