2 ms·
You mean event triggers[1] right? For the problem mentioned in the blog post — protecting roles — it's not possible to use event triggers because PostgreSQL do
by steve-chavez 5y ago
You mean event triggers[1] right?
For the problem mentioned in the blog post — protecting roles — it's not possible to use event triggers because PostgreSQL doesn't fire[2] a DDL event for `CREATE/ALTER/DROP ROLE`.
If an event for role modification was added, then maybe the same could be accomplished with event triggers(perhaps in pure SQL). Though hooks will always be more strict, since you can enforce conditions by preloading the extension in C code, without custom SQL. Also, hooks can enforce a condition even in presence of superusers[3], something that event triggers can't because a superuser can drop them.
[1]: https://www.postgresql.org/docs/current/sql-createeventtrigger.html https://www.postgresql.org/docs/current/sql-createeventtrigg...
[2]: https://www.postgresql.org/docs/current/event-trigger-matrix.html https://www.postgresql.org/docs/current/event-trigger-matrix... (full list of events fired)
[3]: https://paquier.xyz/postgresql-2/hooks-in-postgres-super-superuser-restrictions/ https://paquier.xyz/postgresql-2/hooks-in-postgres-super-sup... (example hook that does this)