| Документация по PostgreSQL 9.4.1 | |||
|---|---|---|---|
| Пред. | Уровень выше | Глава 48. Системные каталоги | След. |
48.17. pg_default_acl
В каталоге pg_default_acl хранятся определения прав, изначально присваиваемые создаваемым объектам.
Таблица 48-17. Колонки pg_default_acl
| Имя | Тип | Ссылки | Описание |
|---|---|---|---|
| oid | oid | Идентификатор строки (скрытый атрибут; должен выбираться явно) | |
| defaclrole | oid | pg_authid.oid | OID роли, связанной с этой записью |
| defaclnamespace | oid | pg_namespace.oid | OID пространства имён, связанного с этой записью, или 0, если запись глобальная |
| defaclobjtype | char | Тип объекта, права для которого определяет эта запись: r = отношение (relation) (таблица, представление), S = последовательность (sequence), f = функция (function), T = тип (type) | |
| defaclacl | aclitem[] | Права доступа, назначаемые объекту данного типа при создании |
В каталоге pg_default_acl описываются начальные права доступа, которые будут связаны с объектом, принадлежащим заданному пользователю. В настоящее время есть два типа записей: "глобальные", с defaclnamespace = 0, и "внутрисхемные", относящиеся к конкретной схеме. Если присутствует глобальная запись, она переопределяет обычный жёстко фиксированный набор прав для данного типа объектов. Если присутствует внутрисхемная запись, она представляет набор прав, добавляемый к набору прав, определённых глобально или жёстко заданных по умолчанию.
Заметьте, что когда поле ACL в другом каталоге содержит NULL, под этим подразумеваются жёстко заданные права по умолчанию для этого объекта, а не те, которые могут быть в pg_default_acl в данный момент. Права в pg_default_acl учитываются только при создании объекта.
| Пред. | Начало | След. |
| pg_db_role_setting | Уровень выше | pg_depend |
| PostgreSQL 9.4.1 Documentation | |||
|---|---|---|---|
| Prev | Up | Chapter 48. System Catalogs | Next |
48.17. pg_default_acl
The catalog pg_default_acl stores initial privileges to be assigned to newly created objects.
Table 48-17. pg_default_acl Columns
| Name | Type | References | Description |
|---|---|---|---|
| oid | oid | Row identifier (hidden attribute; must be explicitly selected) | |
| defaclrole | oid | pg_authid.oid | The OID of the role associated with this entry |
| defaclnamespace | oid | pg_namespace.oid | The OID of the namespace associated with this entry, or 0 if none |
| defaclobjtype | char | Type of object this entry is for: r = relation (table, view), S = sequence, f = function, T = type | |
| defaclacl | aclitem[] | Access privileges that this type of object should have on creation |
A pg_default_acl entry shows the initial privileges to be assigned to an object belonging to the indicated user. There are currently two types of entry: "global" entries with defaclnamespace = 0, and "per-schema" entries that reference a particular schema. If a global entry is present then it overrides the normal hard-wired default privileges for the object type. A per-schema entry, if present, represents privileges to be added to the global or hard-wired default privileges.
Note that when an ACL entry in another catalog is null, it is taken to represent the hard-wired default privileges for its object, not whatever might be in pg_default_acl at the moment. pg_default_acl is only consulted during object creation.