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