Documentation / Extension Hooks / Permissions and object access
object_access_hook
object_access_hook
Plugin provides a hook function matching one or both of these signatures.
Reading PostgreSQL 18.
Description
Plugin provides a hook function matching one or both of these signatures.
- Interface type
- object_access_hook_type
- Header
- src/include/catalog/objectaccess.h
- Subsystem
- Permissions and object access
- Initial value
- NULL (no hook installed)
C interface
typedef void (*object_access_hook_type) (ObjectAccessType access, Oid classId, Oid objectId, int subId, void *arg);
extern PGDLLIMPORT object_access_hook_type object_access_hook;Core source comments
Hook on object accesses. This is intended as infrastructure for security and logging plugins.
Call sites
src/backend/catalog/objectaccess.c:43
src/backend/catalog/objectaccess.c:65
src/backend/catalog/objectaccess.c:81
src/backend/catalog/objectaccess.c:104
src/backend/catalog/objectaccess.c:126
src/backend/catalog/objectaccess.c:144
Core call context: src/backend/catalog/objectaccess.c:37–51
/* caller should check, but just in case... */
Assert(object_access_hook != NULL);
memset(&pc_arg, 0, sizeof(ObjectAccessPostCreate));
pc_arg.is_internal = is_internal;
(*object_access_hook) (OAT_POST_CREATE,
classId, objectId, subId,
&pc_arg);
}
/*
* RunObjectDropHook
*
* OAT_DROP object ID based event hook entrypointCore call context: src/backend/catalog/objectaccess.c:59–73
/* caller should check, but just in case... */
Assert(object_access_hook != NULL);
memset(&drop_arg, 0, sizeof(ObjectAccessDrop));
drop_arg.dropflags = dropflags;
(*object_access_hook) (OAT_DROP,
classId, objectId, subId,
&drop_arg);
}
/*
* RunObjectTruncateHook
*
* OAT_TRUNCATE object ID based event hook entrypointCore call context: src/backend/catalog/objectaccess.c:75–89
void
RunObjectTruncateHook(Oid objectId)
{
/* caller should check, but just in case... */
Assert(object_access_hook != NULL);
(*object_access_hook) (OAT_TRUNCATE,
RelationRelationId, objectId, 0,
NULL);
}
/*
* RunObjectPostAlterHook
*
* OAT_POST_ALTER object ID based event hook entrypointDocumentation and source
Source build
- Version
- 18
- Build
- REL_18_STABLE
- Source fingerprint
753057e340da8f22e57c9a409ea7a235fd6a46bd
Related entries
ExecutorCheckPerms_hookExecutorCheckPerms_hookobject_access_hook_strobject_access_hook_strrow_security_policy_hook_permissiverow_security_policy_hook_permissiverow_security_policy_hook_restrictiverow_security_policy_hook_restrictive
Back to Extension Hooks · Recorded in PostgreSQL 10 through 20; the first sample is not necessarily its introduction.