代码示例:
pg_hba.conf
是 PostgreSQL 数据库中用于控制客户端认证的配置文件,全称为 “Host-Based Authentication”(基于主机的认证)。这个文件定义了哪些主机、哪些用户以及通过何种认证方式可以连接到数据库服务器。以下是
pg_hba.conf
文件的基本配置详解和一些常见例子。
文件结构和字段
pg_hba.conf
文件由多行记录组成,每行一条规则,格式如下:
TYPEDATABASEUSERADDRESSMETHOD连接类型数据库名用户地址认证方法
- TYPE:连接的类型,可以是
local
(本地连接,通常使用 Unix socket)、host
(TCP/IP 连接)、hostssl
(需要 SSL 加密的 TCP/IP 连接)。 - DATABASE:指定数据库名称,可以是
all
(所有数据库)、replication
(仅用于复制连接)或者具体的数据库名称。 - USER:指定用户名称,可以是
all
(所有用户)、具体的用户名或者用户组。 - ADDRESS:指定客户端的 IP 地址或主机名,可以使用 CIDR 格式指定子网。
- METHOD:指定认证方法,如
trust
(无需密码)、md5
(密码以 MD5 哈希形式发送)、password
(密码以明文形式发送)、scram-sha-256
(使用 SCRAM-SHA-256 加密密码)、ident
(使用系统用户的名称解析)、peer
(使用本地系统用户的名称)等。
配置示例
- 本地连接无需认证:
local all all trust
允许所有本地用户无需密码即可连接到所有数据库。 - 特定 IP 地址使用 MD5 认证:
host all all 192.168.1.10/32 md5
允许来自 IP 地址192.168.1.10
的所有用户通过 MD5 加密的密码连接到所有数据库。 - 特定网段使用密码认证:
host all all 192.168.1.0/24 md5
允许192.168.1.0/24
网段内的所有用户通过 MD5 加密的密码连接到所有数据库。 - 拒绝特定 IP 地址的连接:
host all all 192.168.1.100/32 reject
拒绝来自 IP 地址192.168.1.100
的连接。 - 使用 SSL 加密连接:
hostssl all all all scram-sha-256
要求所有通过 SSL 加密连接的用户使用scram-sha-256
方法进行认证。
注意事项
- 修改
pg_hba.conf
文件后,需要重启 PostgreSQL 服务或者发送SIGHUP
信号给 PostgreSQL 服务进程以重新加载配置。 - 在 Windows 上,任何对
pg_hba.conf
文件的更改都会立即应用到后续的新连接上。 - 确保配置的顺序,因为 PostgreSQL 会按照文件中的顺序应用规则,直到找到匹配的规则为止。
- 使用
pg_hba_file_rules
系统视图可以预先测试对pg_hba.conf
文件的更改,或者用于诊断问题。
正确配置
pg_hba.conf
文件对于数据库的安全性至关重要,可以根据实际需求和安全策略来定制认证规则。
喜欢本文,请点赞、收藏和关注!
版权归原作者 乔丹搞IT 所有, 如有侵权,请联系我们删除。