catalog-pg-init-privs.md 2.4 KB
Newer Older
K
KyleZhang 已提交
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
## 52.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`](sql-createextension.html) and the extension script sets initial privileges using the [`GRANT`](sql-grant.html) 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 52.28. `pg_init_privs` Columns**

|                                                                         Column Type<br/><br/> Description                                                                         |
|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
|                                                `objoid` `oid` (references any OID column)<br/><br/> The OID of the specific object                                                |
|                         `classoid` `oid` (references [`pg_class`](catalog-pg-class.html).`oid`)<br/><br/> The OID of the system catalog the object is in                          |
|`objsubid` `int4`<br/><br/> 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`<br/><br/> A code defining the type of initial privilege of this object; see text                                         |
|                                   `initprivs` `aclitem[]`<br/><br/> The initial access privileges; see [Section 5.7](ddl-priv.html) for details                                   |