supautils
用于在云环境中确保数据库集群的安全
仓库
supabase/supautils
https://github.com/supabase/supautils
源码
supautils-3.2.1.tar.gz
supautils-3.2.1.tar.gz
概览
| 扩展包名 | 版本 | 分类 | 许可证 | 语言 |
|---|---|---|---|---|
supautils | 3.2.1 | SEC | Apache-2.0 | C |
| ID | 扩展名 | Bin | Lib | Load | Create | Trust | Reloc | 模式 |
|---|---|---|---|---|---|---|---|---|
| 7010 | supautils | 否 | 是 | 是 | 否 | 否 | 否 | - |
版本
| 类型 | 仓库 | 版本 | PG 大版本 | 包名 | 依赖 |
|---|---|---|---|---|---|
| EXT | PIGSTY | 3.2.1 | 1817161514 | supautils | - |
| RPM | PIGSTY | 3.2.1 | 1817161514 | supautils_$v | - |
| DEB | PIGSTY | 3.2.1 | 1817161514 | postgresql-$v-supautils | - |
构建
您可以使用 pig build 命令构建 supautils 扩展的 RPM / DEB 包:
BASH
安装
您可以直接安装 supautils 扩展包的预置二进制包,首先确保 PGDG 和 PIGSTY 仓库已经添加并启用:
BASH
使用 pig 或者是 apt/yum/dnf 安装扩展:
安装
BASH
pig
BASH
dnf
BASH
apt
BASH
预加载配置:
BASH
用法
supautils 是一个可加载库,允许通过配置把部分原本仅限超级用户的 PostgreSQL 能力安全地开放给非超级用户。上游特别强调:它不会在数据库里创建表、函数或安全标签。
加载方式
集群级:
INI
按角色启用:
SQL
特权代理角色能力
README 记录了一个特权代理角色,可在不授予 SUPERUSER 的前提下创建发布、外部数据包装器、事件触发器和特权扩展。
SQL
对于事件触发器,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
常见示例
允许非超级用户创建指定特权扩展:
INI
允许某个角色管理自己并不拥有的表上的 RLS 策略:
INI
在 CREATE EXTENSION 时强制把扩展装入指定模式:
INI
保护托管服务角色不被 CREATEROLE 用户修改:
INI
发布说明
v3.2.1发布于 2026-04-02,公开说明以维护类改动为主,没有新增用户可见 SQL 接口。v3.2.0新增了缺失GRANT权限时的提示。
注意事项
这是一个强配置驱动的扩展。编写说明时应优先依据 README 中的 GUC 和行为保证,不要暗示任何上游已明确声明“不会创建”的数据库对象。