supautils
概览
| 扩展包名 | 版本 | 分类 | 许可证 | 语言 |
|---|---|---|---|---|
supautils | 3.4.4 | SEC | Apache-2.0 | C |
| ID | 扩展名 | Bin | Lib | Load | Create | Trust | Reloc | 模式 |
|---|---|---|---|---|---|---|---|---|
| 7010 | supautils | 否 | 是 | 是 | 否 | 否 | 否 | - |
Hook library only; no CREATE EXTENSION objects.
版本
| 类型 | 仓库 | 版本 | PG 大版本 | 包名 | 依赖 |
|---|---|---|---|---|---|
| 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
|
构建
您可以使用 pig build 命令构建 supautils 扩展的 RPM / DEB 包:
安装
您可以直接安装 supautils 扩展包的预置二进制包,首先确保 PGDG 和 PIGSTY 仓库已经添加并启用:
使用 pig 或者是 apt/yum/dnf 安装扩展:
预加载配置:
用法
来源:
supautils 是一个可加载库,允许通过配置把部分原本仅限超级用户的 PostgreSQL 能力安全地开放给非超级用户。上游特别强调:它不会在数据库里创建表、函数或安全标签。
加载方式
集群级:
按角色启用:
特权代理角色能力
README 记录了一个特权代理角色,可在不授予 SUPERUSER 的前提下创建发布、外部数据包装器、事件触发器和特权扩展。
对于事件触发器,README 说明这些触发器会对非超级用户生效,但会跳过超级用户和保留角色;同时它也明确记录了一条限制:在创建发布、外部数据包装器或扩展时,这些触发器不会触发。
重要配置项
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
常见示例
允许非超级用户创建指定特权扩展:
允许某个角色管理自己并不拥有的表上的 RLS 策略:
在 CREATE EXTENSION 时强制把扩展装入指定模式:
保护托管服务角色不被 CREATEROLE 用户修改:
版本选择与运行边界
supautils.restrict_extension_versions 控制非超级用户是否可以显式指定版本:off 允许;warn 忽略指定值,发出警告并选择控制文件默认版本;error 拒绝。这同时适用于扩展创建和升级;超级用户及配置的代理超级用户不受约束。不显式指定版本的操作仍可执行,但须通过普通权限检查。
集群预加载需要重启;角色级会话预加载对新连接生效。不要为 supautils 本身执行 CREATE EXTENSION。源码发布版 3.4.4 是库更新,没有 SQL 扩展升级步骤。它避免在允许列表中的表上检查策略时获取 ACCESS EXCLUSIVE 锁,并在退出提权区间的每条路径上恢复调用者角色。
允许的扩展和自定义脚本会使用代理超级用户权限,应把它们作为可信代码审查。带标签的 README 说明 PostgreSQL 18 的视图不支持增强权限提示。扩大授权前,应测试角色切换、事件触发器所有权和保留角色保护。
这个页面对您有帮助吗?
感谢反馈,我们会据此改进这篇文档。
哪里没有解决?(可选)