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