allow_alter_system 是一个 配置参数,用于控制 ALTER SYSTEM 命令的使用。
allow_alter_system 已在 PostgreSQL 17 中添加。
默认
allow_alter_system 的默认值为:on。
用法
通过 allow_alter_system 禁用 ALTER SYSTEM 的设计初衷是用于 PostgreSQL 配置由外部工具或设施管理的场景。它旨在防止通过 ALTER SYSTEM 进行手动配置修改,这可能会与外部工具所做的修改发生冲突。
它并非用作可能的安全措施。特别是,它对 postgresql.auto.conf 没有影响,对该文件的修改仍然会生效。
按 PostgreSQL 版本详细信息
allow_alter_system (PostgreSQL 19)
| 设置 | 开启 |
| 单位 | |
| 类别 | 版本和平台兼容性 / 其他平台和客户端 |
| 简短描述 | 允许运行 ALTER SYSTEM 命令。 |
| 扩展描述 | 对于应使用其他方法进行全局配置更改的环境,可以将其设置为 off。 |
| 上下文 | sighup |
| 变量类型 | bool |
| 来源 | 默认 |
| 最小值 | |
| 最大值 | |
| 枚举值 | |
| 启动值 | 开启 |
| 重置值 | 开启 |
| 源文件 | |
| 源行 | |
| 需要重启 | false |
allow_alter_system (PostgreSQL 18)
| 设置 | 开启 |
| 单位 | |
| 类别 | 版本和平台兼容性 / 其他平台和客户端 |
| 简短描述 | 允许运行 ALTER SYSTEM 命令。 |
| 扩展描述 | 对于应使用其他方法进行全局配置更改的环境,可以将其设置为 off。 |
| 上下文 | sighup |
| 变量类型 | bool |
| 来源 | 默认 |
| 最小值 | |
| 最大值 | |
| 枚举值 | |
| 启动值 | 开启 |
| 重置值 | 开启 |
| 源文件 | |
| 源行 | |
| 需要重启 | false |
allow_alter_system (PostgreSQL 17)
| 设置 | 开启 |
| 单位 | |
| 类别 | 版本和平台兼容性 / 其他平台和客户端 |
| 简短描述 | 允许运行 ALTER SYSTEM 命令。 |
| 扩展描述 | 对于应使用其他方法进行全局配置更改的环境,可以将其设置为 off。 |
| 上下文 | sighup |
| 变量类型 | bool |
| 来源 | 默认 |
| 最小值 | |
| 最大值 | |
| 枚举值 | |
| 启动值 | 开启 |
| 重置值 | 开启 |
| 源文件 | |
| 源行 | |
| 需要重启 | false |
变更历史
- PostgreSQL 17
- 添加于 (提交 d3ae2a24)
示例
allow_alter_system 的基本用法示例
postgres=# SHOW allow_alter_system; allow_alter_system -------------------- off (1 row) postgres=# ALTER SYSTEM SET log_statement = 'all'; ERROR: ALTER SYSTEM is not allowed in this environment
allow_alter_system 无法从客户端应用程序更改
postgres=# SET allow_alter_system TO off; ERROR: parameter "allow_alter_system" cannot be changed now postgres=# ALTER SYSTEM SET allow_alter_system TO off; ERROR: parameter "allow_alter_system" cannot be changed
参考资料
- PostgreSQL 文档: allow_alter_system
