PostgreSQL 服务器主要文件及其功能

发布: (2026年3月4日 GMT+8 07:03)
3 分钟阅读
原文: Dev.to

Source: Dev.to

Cover image for Principais Arquivos do Servidor PostgreSQL e Suas Funções

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 用户。配合 peerident 认证使用。

概念示例:

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客户端密码自动化连接
0 浏览
Back to Blog

相关文章

阅读更多 »