选择 打开 改范围 完整检索页

pgsql.cc 提供对 postgresql.org 官网内容的中文翻译,由 Pigsty 团队维护。

文档 / 配置参数 / 版本和平台兼容性

CONFIGURATION PARAMETER版本和平台兼容性 / 其他平台和客户端

allow_alter_system

允许执行 ALTER SYSTEM 命令。

Allows running the ALTER SYSTEM command.

布尔 重载生效 引入 17 现存至 20 devel 0 次默认值变更

类型
布尔bool
上下文
重载生效改配置文件后重载(pg_ctl reload / SIGHUP)即可生效
默认值
on
引入版本
17
状态
现存

PostgreSQL 18 手册 官方文档 引入提交 d3ae2a24f2

版本轨迹

相对 PostgreSQL 17 无变化。

默认值变迁

on 17 – 20

默认值自 PostgreSQL 17 起没有变过。带单位的取值换算成了可读形式,原始的 boot_val 与单位写在悬浮提示里。

手册说明

PostgreSQL 18 手册 · 19.13 版本和平台兼容性 本站手册 官方原文

本版译文与 PostgreSQL 17 完全一致,下面就是同一段文字。

allow_alter_system被设置为off时,执行ALTER SYSTEM命令会返回错误。 这个参数只能在postgresql.conf文件或服务器命令行中设置。默认值为on

请注意,这个设置不应被视为一种安全特性。它只会禁用ALTER SYSTEM命令, 不会阻止超级用户使用其他 SQL 命令修改配置。超级用户有很多办法在操作系统层面执行 shell 命令, 因而无论此设置为何值,都可以修改postgresql.auto.conf

关闭这个设置主要适用于由外部工具管理PostgreSQL配置的环境。 在这样的环境中,出于好意的超级用户可能会误用ALTER SYSTEM 来修改配置,而不是通过外部工具进行管理。这可能导致意外行为,例如外部工具稍后更新配置时覆盖这些更改。 将此参数设置为off有助于避免这类错误。

这个参数只控制ALTER SYSTEM的使用。即使allow_alter_system 被设置为off,存储在postgresql.auto.conf中的设置仍然会生效。

机制详解

允许执行 ALTER SYSTEM 命令。重新加载配置即可应用新值;已经开始的工作不会被追溯改变。

关闭后,PostgreSQL 会在 ALTER SYSTEM 改写 postgresql.auto.conf 前拒绝该命令。它既不会删除 auto.conf 现有条目,也无法阻止操作系统管理员改文件,因此这是 SQL 管理边界而不是文件系统安全边界。

应把 allow_alter_system 与 config_file、data_directory、hba_file 一起监控和变更。先在对应角色与真实负载上验证,再按其 sighup context 选择会话修改、reload 或 restart;历史默认值并不等于当前有效值。

调优建议

按典型负载给出的取值思路,不是放之四海皆准的配方:实际取值要看数据量、并发度与硬件。

  • OLTP在线事务处理

    由配置管理器拥有 postgresql.conf/auto.conf 的托管环境可关闭它,减少 SQL 管理面;同时审计现有 auto.conf,并限制文件与超级用户权限。

  • OLAP分析与批处理

    策略与 OLTP 相同。若批处理平台依赖 ALTER SYSTEM,先迁移到声明式配置接口,避免任务在 reload 后悄然失败。

  • 小规格低配实例与开发机

    单管理员实例可保持默认,但不要把 ALTER SYSTEM 当作变更审计系统;保留配置版本、回滚与重启/reload 记录。

常见问题

  • 把兼容开关当作永久方案而不修复客户端。
  • 只在一个会话测试,却全局部署到所有应用。
  • 混淆解析兼容性与数据或安全兼容性。
  • 升级后忘记清理已经不需要的覆盖。

演化历史

相邻两个大版本之间的差异,新的在前。版本号链到该版的快照。

  1. PostgreSQL 20 ← 19 沿用 19

    事实沿用 19

  2. PostgreSQL 17 ← 16 新增此参数

    PostgreSQL 17 起可用

逐版本快照

每个收录版本里的 7 项事实,与上一个存在的版本不同的格子带底色。版本号链到该版。

版本 默认值单位上下文类型最小值最大值枚举值
17 on 重载生效 布尔
18 on 重载生效 布尔
19 on 重载生效 布尔
20 沿用 on 重载生效 布尔

参考资料

同类参数

参数 类型 上下文 默认值 版本变动 最近变更
Version and Platform Compatibility 版本和平台兼容性 2 个
其他平台和客户端 2
allow_alter_system 布尔 重载生效 on
允许执行 ALTER SYSTEM 命令。 现存
transform_null_equals 布尔 会话 off
将 expr = NULL 视为 expr IS NULL。 现存