PostgreSQL 服务器主要文件及其功能
发布: (2026年3月4日 GMT+8 07:03)
3 分钟阅读
原文: Dev.to
Source: Dev.to

1️⃣ postgresql.conf — 服务器通用配置
它是 PostgreSQL 的核心配置文件。控制:
- 服务器端口 (
port) - 网络接口 (
listen_addresses) - 内存 (
shared_buffers,work_mem,maintenance_work_mem) - 日志
- 自动清理(Autovacuum)
- WAL(预写日志)
- 复制
- 性能参数
port = 5432
listen_addresses = '*'
shared_buffers = 256MB
log_min_duration_statement = 1000
📌 每当你想修改服务器的全局行为时,都在这里进行。
2️⃣ pg_hba.conf — 访问控制与认证
HBA 代表 基于主机的认证(Host‑Based Authentication)。定义谁可以连接、来自哪个 IP、连接哪个数据库以及使用哪种认证方式。
典型结构:
TYPE DATABASE USER ADDRESS METHOD
host all all 192.168.1.0/24 md5
常用方法:
trust→ 不需要密码(不安全)md5→ 加密密码(旧版)scram-sha-256→ 现代且推荐的方式peer→ 使用操作系统的认证
📌 若谈到安全与访问,首先想到的就是
pg_hba.conf。
3️⃣ pg_ident.conf — 用户映射
将操作系统用户映射到 PostgreSQL 用户。配合 peer 或 ident 认证使用。
概念示例:
mapa_nome usuario_linux usuario_postgres
它不控制 IP 也不涉及密码——仅负责身份映射。
4️⃣ postgresql.auto.conf — 通过 ALTER SYSTEM 的配置
当你执行以下语句时会自动创建:
ALTER SYSTEM SET work_mem = '64MB';
重要特性:
- 由 PostgreSQL 自动管理
- 会覆盖
postgresql.conf中的同名参数 - 不应手动编辑
5️⃣ .pgpass — 客户端密码文件
位于客户端机器上,而非服务器。用于存储凭证,免去每次连接时手动输入密码。
格式:
hostname:port:database:username:password
⚠️ 必须设置权限为
0600。否则出于安全考虑会被忽略。
6️⃣ 数据目录 (data/)
在数据目录中包含:
- 表的物理文件
- WAL(事务日志)
- 系统目录(catalog)
- 内部控制文件
切勿手动修改该目录下的文件。
战略概览
| 文件 | 主要功能 | 关注点 |
|---|---|---|
postgresql.conf | 通用配置 | 性能与行为 |
pg_hba.conf | 访问控制 | 安全 |
pg_ident.conf | 用户映射 | 与操作系统集成 |
postgresql.auto.conf | 自动配置 | ALTER SYSTEM |
.pgpass | 客户端密码 | 自动化连接 |