51.28. pg_init_privs#

51.28. pg_init_privs

51.28. pg_init_privs

Каталог pg_init_privs содержит информацию о начальных привилегиях объектов в системе. Для каждого объекта в базе данных, у которого есть нестандартный (ненулевой) набор начальных привилегий, создается одна запись.

Все объекты могут иметь начальные привилегии, либо устанавливая их при инициализации системы (с помощью initdb), либо при создании объекта во время выполнения команды CREATE EXTENSION, когда скрипт расширения устанавливает начальные привилегии с помощью команды GRANT. Обратите внимание, что система автоматически обрабатывает запись привилегий во время выполнения скрипта расширения, и авторам расширений достаточно использовать команды GRANT и REVOKE в своем скрипте для записи привилегий. Столбец privtype указывает, были ли начальные привилегии установлены с помощью initdb или команды CREATE EXTENSION.

Объекты, для которых начальные привилегии устанавливаются с помощью initdb, будут иметь записи, где privtype равно 'i', в то время как объекты, для которых начальные привилегии устанавливаются с помощью CREATE EXTENSION, будут иметь записи, где privtype равно 'e'.

Таблица 51.28. pg_init_privs Columns

Тип столбца

Описание

objoid oid (ссылается на любой столбец OID)

OID (Object Identifier) - это уникальный идентификатор объекта.

classoid oid (ссылается на pg_class.oid)

OID системного каталога, в котором находится объект.

objsubid int4

Для столбца таблицы это номер столбца (поля objoid и classoid относятся к самой таблице). Для всех остальных типов объектов этот столбец равен нулю.

privtype char

Код, определяющий тип начального привилегия для данного объекта; см. текст

initprivs aclitem[]

Начальные привилегии доступа; см. Раздел 5.7 для получения подробной информации