pg_init_privs
В каталоге pg_init_privs
хранится информация о начальных привилегиях объектов в системе. Для каждого объекта в базе данных, имеющего начальный набор привилегий не по умолчанию (не NULL), существует одна запись.
Объекты могут иметь начальные привилегии либо путем установки этих привилегий при инициализации системы (с помощью initdb
), либо когда объект создается в процессе CREATE EXTENSION
и сценарий расширения устанавливает начальные привилегии с помощью системы GRANT
. Обратите внимание, что система автоматически обрабатывает запись привилегий во время сценария расширения, и авторам расширений нужно только использовать операторы GRANT
и REVOKE
в своем сценарии, чтобы записать привилегии. Столбец privtype
указывает, была ли начальная привилегия установлена initdb
или во время команды CREATE EXTENSION
.
Объекты с начальными привилегиями, установленными initdb
, будут иметь записи с privtype 'i', а объекты с начальными привилегиями, установленными CREATE EXTENSION
, будут иметь записи с privtype
.
Столбец | Тип данных | Описание |
---|---|---|
objoid | oid ссылается на pg_class.oid | OID определенного объекта |
classoid | oid ссылается на (pg_class.oid) | OID системного каталога, в котором находится объект |
objsubid | int4 | Для столбца таблицы это номер столбца (objoid и classoid относятся к самой таблице). Для всех остальных типов объектов этот столбец равен нулю |
privtype | char | Код, определяющий тип начальной привилегии этого объекта; см. текст |
initprivs | aclitem[] | Начальные права доступа; подробности см. в Разделе 5.7 |