feat: support non-superuser event trigger #98
+254
−17
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Closes #67.
The
privileged_role
is able to switch to superuser to create event triggers.To prevent privesc, superusers and
reserved_roles
skip event trigger execution.Limitation: while doing
create extension
event triggers will not be fired, since extensions are created by a superuser.Implementation
It uses the
fmgr_hook
to skip event triggers. However note thatfmgr_hook
doesn't really offer a direct way to say "skip this function execution" (although we can abort withereport
), so to achieve this the workaround is to override theFmgrInfo
and turn into a noop.