supautils
Overview
| Package | Version | Category | License | Language |
|---|---|---|---|---|
supautils | 3.4.4 | SEC | Apache-2.0 | C |
| ID | Extension | Bin | Lib | Load | Create | Trust | Reloc | Schema |
|---|---|---|---|---|---|---|---|---|
| 7010 | supautils | No | Yes | Yes | No | No | No | - |
Hook library only; no CREATE EXTENSION objects.
Version
| Type | Repo | Version | PG Ver | Package | Deps |
|---|---|---|---|---|---|
| EXT | PIGSTY | 3.4.4 | 1817161514 | supautils | - |
| RPM | PIGSTY | 3.4.4 | 1817161514 | supautils_$v | - |
| DEB | PIGSTY | 3.4.4 | 1817161514 | postgresql-$v-supautils | - |
| OS / PG | PG18 | PG17 | PG16 | PG15 | PG14 |
|---|---|---|---|---|---|
| el8.x86_64 | PIGSTY 3.4.4 el8.x86_64.pg18 : supautils_18 supautils_18-3.4.4-1PGSTY.el8.x86_64.rpm
| PIGSTY 3.4.4 el8.x86_64.pg17 : supautils_17 supautils_17-3.4.4-1PGSTY.el8.x86_64.rpm
| PIGSTY 3.4.4 el8.x86_64.pg16 : supautils_16 supautils_16-3.4.4-1PGSTY.el8.x86_64.rpm
| PIGSTY 3.4.4 el8.x86_64.pg15 : supautils_15 supautils_15-3.4.4-1PGSTY.el8.x86_64.rpm
| PIGSTY 3.4.4 el8.x86_64.pg14 : supautils_14 supautils_14-3.4.4-1PGSTY.el8.x86_64.rpm
|
| el8.aarch64 | PIGSTY 3.4.4 el8.aarch64.pg18 : supautils_18 supautils_18-3.4.4-1PGSTY.el8.aarch64.rpm
| PIGSTY 3.4.4 el8.aarch64.pg17 : supautils_17 supautils_17-3.4.4-1PGSTY.el8.aarch64.rpm
| PIGSTY 3.4.4 el8.aarch64.pg16 : supautils_16 supautils_16-3.4.4-1PGSTY.el8.aarch64.rpm
| PIGSTY 3.4.4 el8.aarch64.pg15 : supautils_15 supautils_15-3.4.4-1PGSTY.el8.aarch64.rpm
| PIGSTY 3.4.4 el8.aarch64.pg14 : supautils_14 supautils_14-3.4.4-1PGSTY.el8.aarch64.rpm
|
| el9.x86_64 | PIGSTY 3.4.4 el9.x86_64.pg18 : supautils_18 supautils_18-3.4.4-1PGSTY.el9.x86_64.rpm
| PIGSTY 3.4.4 el9.x86_64.pg17 : supautils_17 supautils_17-3.4.4-1PGSTY.el9.x86_64.rpm
| PIGSTY 3.4.4 el9.x86_64.pg16 : supautils_16 supautils_16-3.4.4-1PGSTY.el9.x86_64.rpm
| PIGSTY 3.4.4 el9.x86_64.pg15 : supautils_15 supautils_15-3.4.4-1PGSTY.el9.x86_64.rpm
| PIGSTY 3.4.4 el9.x86_64.pg14 : supautils_14 supautils_14-3.4.4-1PGSTY.el9.x86_64.rpm
|
| el9.aarch64 | PIGSTY 3.4.4 el9.aarch64.pg18 : supautils_18 supautils_18-3.4.4-1PGSTY.el9.aarch64.rpm
| PIGSTY 3.4.4 el9.aarch64.pg17 : supautils_17 supautils_17-3.4.4-1PGSTY.el9.aarch64.rpm
| PIGSTY 3.4.4 el9.aarch64.pg16 : supautils_16 supautils_16-3.4.4-1PGSTY.el9.aarch64.rpm
| PIGSTY 3.4.4 el9.aarch64.pg15 : supautils_15 supautils_15-3.4.4-1PGSTY.el9.aarch64.rpm
| PIGSTY 3.4.4 el9.aarch64.pg14 : supautils_14 supautils_14-3.4.4-1PGSTY.el9.aarch64.rpm
|
| el10.x86_64 | PIGSTY 3.4.4 el10.x86_64.pg18 : supautils_18 supautils_18-3.4.4-1PGSTY.el10.x86_64.rpm
| PIGSTY 3.4.4 el10.x86_64.pg17 : supautils_17 supautils_17-3.4.4-1PGSTY.el10.x86_64.rpm
| PIGSTY 3.4.4 el10.x86_64.pg16 : supautils_16 supautils_16-3.4.4-1PGSTY.el10.x86_64.rpm
| PIGSTY 3.4.4 el10.x86_64.pg15 : supautils_15 supautils_15-3.4.4-1PGSTY.el10.x86_64.rpm
| PIGSTY 3.4.4 el10.x86_64.pg14 : supautils_14 supautils_14-3.4.4-1PGSTY.el10.x86_64.rpm
|
| el10.aarch64 | PIGSTY 3.4.4 el10.aarch64.pg18 : supautils_18 supautils_18-3.4.4-1PGSTY.el10.aarch64.rpm
| PIGSTY 3.4.4 el10.aarch64.pg17 : supautils_17 supautils_17-3.4.4-1PGSTY.el10.aarch64.rpm
| PIGSTY 3.4.4 el10.aarch64.pg16 : supautils_16 supautils_16-3.4.4-1PGSTY.el10.aarch64.rpm
| PIGSTY 3.4.4 el10.aarch64.pg15 : supautils_15 supautils_15-3.4.4-1PGSTY.el10.aarch64.rpm
| PIGSTY 3.4.4 el10.aarch64.pg14 : supautils_14 supautils_14-3.4.4-1PGSTY.el10.aarch64.rpm
|
| d12.x86_64 | PIGSTY 3.4.4 d12.x86_64.pg18 : postgresql-18-supautils postgresql-18-supautils_3.4.4-1PGSTY~bookworm_amd64.deb
| PIGSTY 3.4.4 d12.x86_64.pg17 : postgresql-17-supautils postgresql-17-supautils_3.4.4-1PGSTY~bookworm_amd64.deb
| PIGSTY 3.4.4 d12.x86_64.pg16 : postgresql-16-supautils postgresql-16-supautils_3.4.4-1PGSTY~bookworm_amd64.deb
| PIGSTY 3.4.4 d12.x86_64.pg15 : postgresql-15-supautils postgresql-15-supautils_3.4.4-1PGSTY~bookworm_amd64.deb
| PIGSTY 3.4.4 d12.x86_64.pg14 : postgresql-14-supautils postgresql-14-supautils_3.4.4-1PGSTY~bookworm_amd64.deb
|
| d12.aarch64 | PIGSTY 3.4.4 d12.aarch64.pg18 : postgresql-18-supautils postgresql-18-supautils_3.4.4-1PGSTY~bookworm_arm64.deb
| PIGSTY 3.4.4 d12.aarch64.pg17 : postgresql-17-supautils postgresql-17-supautils_3.4.4-1PGSTY~bookworm_arm64.deb
| PIGSTY 3.4.4 d12.aarch64.pg16 : postgresql-16-supautils postgresql-16-supautils_3.4.4-1PGSTY~bookworm_arm64.deb
| PIGSTY 3.4.4 d12.aarch64.pg15 : postgresql-15-supautils postgresql-15-supautils_3.4.4-1PGSTY~bookworm_arm64.deb
| PIGSTY 3.4.4 d12.aarch64.pg14 : postgresql-14-supautils postgresql-14-supautils_3.4.4-1PGSTY~bookworm_arm64.deb
|
| d13.x86_64 | PIGSTY 3.4.4 d13.x86_64.pg18 : postgresql-18-supautils postgresql-18-supautils_3.4.4-1PGSTY~trixie_amd64.deb
| PIGSTY 3.4.4 d13.x86_64.pg17 : postgresql-17-supautils postgresql-17-supautils_3.4.4-1PGSTY~trixie_amd64.deb
| PIGSTY 3.4.4 d13.x86_64.pg16 : postgresql-16-supautils postgresql-16-supautils_3.4.4-1PGSTY~trixie_amd64.deb
| PIGSTY 3.4.4 d13.x86_64.pg15 : postgresql-15-supautils postgresql-15-supautils_3.4.4-1PGSTY~trixie_amd64.deb
| PIGSTY 3.4.4 d13.x86_64.pg14 : postgresql-14-supautils postgresql-14-supautils_3.4.4-1PGSTY~trixie_amd64.deb
|
| d13.aarch64 | PIGSTY 3.4.4 d13.aarch64.pg18 : postgresql-18-supautils postgresql-18-supautils_3.4.4-1PGSTY~trixie_arm64.deb
| PIGSTY 3.4.4 d13.aarch64.pg17 : postgresql-17-supautils postgresql-17-supautils_3.4.4-1PGSTY~trixie_arm64.deb
| PIGSTY 3.4.4 d13.aarch64.pg16 : postgresql-16-supautils postgresql-16-supautils_3.4.4-1PGSTY~trixie_arm64.deb
| PIGSTY 3.4.4 d13.aarch64.pg15 : postgresql-15-supautils postgresql-15-supautils_3.4.4-1PGSTY~trixie_arm64.deb
| PIGSTY 3.4.4 d13.aarch64.pg14 : postgresql-14-supautils postgresql-14-supautils_3.4.4-1PGSTY~trixie_arm64.deb
|
| u22.x86_64 | PIGSTY 3.4.4 u22.x86_64.pg18 : postgresql-18-supautils postgresql-18-supautils_3.4.4-1PGSTY~jammy_amd64.deb
| PIGSTY 3.4.4 u22.x86_64.pg17 : postgresql-17-supautils postgresql-17-supautils_3.4.4-1PGSTY~jammy_amd64.deb
| PIGSTY 3.4.4 u22.x86_64.pg16 : postgresql-16-supautils postgresql-16-supautils_3.4.4-1PGSTY~jammy_amd64.deb
| PIGSTY 3.4.4 u22.x86_64.pg15 : postgresql-15-supautils postgresql-15-supautils_3.4.4-1PGSTY~jammy_amd64.deb
| PIGSTY 3.4.4 u22.x86_64.pg14 : postgresql-14-supautils postgresql-14-supautils_3.4.4-1PGSTY~jammy_amd64.deb
|
| u22.aarch64 | PIGSTY 3.4.4 u22.aarch64.pg18 : postgresql-18-supautils postgresql-18-supautils_3.4.4-1PGSTY~jammy_arm64.deb
| PIGSTY 3.4.4 u22.aarch64.pg17 : postgresql-17-supautils postgresql-17-supautils_3.4.4-1PGSTY~jammy_arm64.deb
| PIGSTY 3.4.4 u22.aarch64.pg16 : postgresql-16-supautils postgresql-16-supautils_3.4.4-1PGSTY~jammy_arm64.deb
| PIGSTY 3.4.4 u22.aarch64.pg15 : postgresql-15-supautils postgresql-15-supautils_3.4.4-1PGSTY~jammy_arm64.deb
| PIGSTY 3.4.4 u22.aarch64.pg14 : postgresql-14-supautils postgresql-14-supautils_3.4.4-1PGSTY~jammy_arm64.deb
|
| u24.x86_64 | PIGSTY 3.4.4 u24.x86_64.pg18 : postgresql-18-supautils postgresql-18-supautils_3.4.4-1PGSTY~noble_amd64.deb
| PIGSTY 3.4.4 u24.x86_64.pg17 : postgresql-17-supautils postgresql-17-supautils_3.4.4-1PGSTY~noble_amd64.deb
| PIGSTY 3.4.4 u24.x86_64.pg16 : postgresql-16-supautils postgresql-16-supautils_3.4.4-1PGSTY~noble_amd64.deb
| PIGSTY 3.4.4 u24.x86_64.pg15 : postgresql-15-supautils postgresql-15-supautils_3.4.4-1PGSTY~noble_amd64.deb
| PIGSTY 3.4.4 u24.x86_64.pg14 : postgresql-14-supautils postgresql-14-supautils_3.4.4-1PGSTY~noble_amd64.deb
|
| u24.aarch64 | PIGSTY 3.4.4 u24.aarch64.pg18 : postgresql-18-supautils postgresql-18-supautils_3.4.4-1PGSTY~noble_arm64.deb
| PIGSTY 3.4.4 u24.aarch64.pg17 : postgresql-17-supautils postgresql-17-supautils_3.4.4-1PGSTY~noble_arm64.deb
| PIGSTY 3.4.4 u24.aarch64.pg16 : postgresql-16-supautils postgresql-16-supautils_3.4.4-1PGSTY~noble_arm64.deb
| PIGSTY 3.4.4 u24.aarch64.pg15 : postgresql-15-supautils postgresql-15-supautils_3.4.4-1PGSTY~noble_arm64.deb
| PIGSTY 3.4.4 u24.aarch64.pg14 : postgresql-14-supautils postgresql-14-supautils_3.4.4-1PGSTY~noble_arm64.deb
|
| u26.x86_64 | PIGSTY 3.4.4 u26.x86_64.pg18 : postgresql-18-supautils postgresql-18-supautils_3.4.4-1PGSTY~resolute_amd64.deb
| PIGSTY 3.4.4 u26.x86_64.pg17 : postgresql-17-supautils postgresql-17-supautils_3.4.4-1PGSTY~resolute_amd64.deb
| PIGSTY 3.4.4 u26.x86_64.pg16 : postgresql-16-supautils postgresql-16-supautils_3.4.4-1PGSTY~resolute_amd64.deb
| PIGSTY 3.4.4 u26.x86_64.pg15 : postgresql-15-supautils postgresql-15-supautils_3.4.4-1PGSTY~resolute_amd64.deb
| PIGSTY 3.4.4 u26.x86_64.pg14 : postgresql-14-supautils postgresql-14-supautils_3.4.4-1PGSTY~resolute_amd64.deb
|
| u26.aarch64 | PIGSTY 3.4.4 u26.aarch64.pg18 : postgresql-18-supautils postgresql-18-supautils_3.4.4-1PGSTY~resolute_arm64.deb
| PIGSTY 3.4.4 u26.aarch64.pg17 : postgresql-17-supautils postgresql-17-supautils_3.4.4-1PGSTY~resolute_arm64.deb
| PIGSTY 3.4.4 u26.aarch64.pg16 : postgresql-16-supautils postgresql-16-supautils_3.4.4-1PGSTY~resolute_arm64.deb
| PIGSTY 3.4.4 u26.aarch64.pg15 : postgresql-15-supautils postgresql-15-supautils_3.4.4-1PGSTY~resolute_arm64.deb
| PIGSTY 3.4.4 u26.aarch64.pg14 : postgresql-14-supautils postgresql-14-supautils_3.4.4-1PGSTY~resolute_arm64.deb
|
Build
You can build the RPM / DEB packages for supautils using pig build:
Install
You can install supautils directly. First, make sure the PGDG and PIGSTY repositories are added and enabled:
Install the extension using pig or apt/yum/dnf:
Preload:
Usage
Sources:
supautils is a loadable library that unlocks selected superuser-only PostgreSQL features for non-superusers through configuration. Upstream emphasizes that it adds no tables, functions, or security labels to the database.
Load it
Cluster-wide:
Per role:
Privileged role capabilities
The README documents a privileged proxy role that can create publications, foreign data wrappers, event triggers, and privileged extensions without granting SUPERUSER.
For event triggers, the README says privileged-role triggers run for non-superusers, skip superusers, and also skip reserved roles. It also documents one limitation: those triggers do not fire while creating publications, foreign data wrappers, or extensions.
Important configuration knobs
supautils.superusersupautils.privileged_rolesupautils.privileged_role_allowed_configssupautils.privileged_extensionssupautils.extension_custom_scripts_pathsupautils.constrained_extensionssupautils.extensions_parameter_overridessupautils.policy_grantssupautils.drop_trigger_grantssupautils.reserved_rolessupautils.reserved_membershipssupautils.hint_rolessupautils.log_skipped_evtrigs
Useful examples
Allow a non-superuser to create specific privileged extensions:
Allow a role to manage RLS policies on tables it does not own:
Force an extension into a specific schema on CREATE EXTENSION:
Protect managed-service roles from CREATEROLE users:
Version Selection and Operational Boundaries
supautils.restrict_extension_versions controls explicit version clauses for non-superusers: off allows them, warn ignores them and selects the control-file default with a warning, and error rejects them. This applies to both extension creation and upgrades; superusers and the configured proxy superuser are exempt. Omitting an explicit version remains allowed subject to normal privilege checks.
Cluster preload requires a restart; role-specific session preload applies to new connections. Do not run CREATE EXTENSION for supautils itself. Source release 3.4.4 is a library update and has no SQL extension-update step. It avoids ACCESS EXCLUSIVE locks during allowlisted-table policy checks and restores the caller’s role on every exit from an elevated region.
Review allowed extensions and custom scripts as trusted code because their operations run with delegated superuser privileges. Enhanced privilege hints do not work for views on PostgreSQL 18 according to the tagged README. Test role transitions, event-trigger ownership and reserved-role protections before broadening grants.
Was this page helpful?
Thanks—your feedback helps us improve this page.
What got in the way? (optional)