pg_hba.conf("hba" 代表 "Host-Based Access")是 PostgreSQL 的主要配置文件之一,用于确定哪个用户可以从哪个主机使用哪种身份验证方法访问哪个数据库。
pg_hba.conf 在 Postgres95 中添加。
位置
默认情况下,pg_hba.conf 位于实例的数据目录中。可以通过在实例启动时显式设置参数 hba_file 来覆盖此默认设置。
可以通过执行以下任一命令来确定 pg_hba.conf 的位置:
SHOW hba_file;
或
SELECT current_setting('hba_file');
目录
(系统目录)视图 pg_hba_file_rules 提供了 pg_hba.conf 当前内容的摘要,可用于在尝试应用更改之前检查潜在错误。
变更历史
进行中
- PostgreSQL 16
- PostgreSQL 14
- PostgreSQL 10
- 逻辑复制连接现在被视为常规连接,即不再使用
replication关键字(提交 8df9bd0b) - 可以通过视图
pg_hba_file_rules访问内容(提交 de16ab72)
- 逻辑复制连接现在被视为常规连接,即不再使用
- PostgreSQL 8.4
pg_hba.conf现在在 postmaster 中解析(提交 98723810)- 添加了身份验证选项
clientcert(提交 3c486fbd) - 某些 Kerberos 选项可以在
pg_hba.conf中设置,覆盖 postgresql.conf 设置(提交 32c469d7) - 以前的(GUC - Grand Unified Configuration)配置参数
krb_realm和krb_server_hostname现在是pg_hba.conf的选项(提交 1b4e729e)
- PostgreSQL 8.0
- PostgreSQL 7.4
- PostgreSQL 7.3
- 添加了列
USER(提交 43a3543a)
- 添加了列
- PostgreSQL 7.2
- 添加了身份验证方法
md5(提交 bcb0ccf5)
- 添加了身份验证方法
- PostgreSQL 6.4
- 添加了对
sameusertoken 的支持(提交 3f372ee6)
- 添加了对
pg_hba.conf 在 Postgres95 开发阶段添加(初始提交 57026d60)
参考资料
- PostgreSQL documentation: pg_hba.conf
有用链接
- 使用 pg_hba.conf 使 pg_hba.conf 冗余 - Shaun M. Thomas 的文章,解释如何简化访问配置
