基于PostgreSQL pg_hba.conf 配置参数的使用说明
基于 PostgreSQL pg_hba.conf 配置参数的使用说明
pg_hba.conf 是 PostgreSQL 数据库服务器中用来配置客户端身份验证的重要文件。在该文件中,可以通过配置规则来允许或拒绝不同来源的客户端连接到数据库服务器。
配置格式
每一个 pg_hba.conf 规则都由多个字段组成:
    # TYPE DATABASE USER ADDRESS METHOD [OPTIONS]
其中:
- TYPE:规则的类型,包括- local、- host、- hostssl、- hostnossl,分别对应本地 UNIX Socket 连接、 TCP/IP 连接、使用 SSL 的 TCP/IP 连接、不使用 SSL 的 TCP/IP 连接。不同- TYPE对应的地址格式、认证方式和选项略有不同。
- DATABASE:规则对应的数据库名称,可以为- all表示适用于所有数据库。
- USER:规则对应的数据库用户名称,可以为- all表示适用于所有用户。
- ADDRESS:规则适用的客户端 IP 地址或主机名,对于- local类型的规则,该字段可以省略。
- METHOD:规则使用的认证方式,包括- trust、- reject、- md5、- password、- ldap等。其中,- trust表示不进行认证直接允许访问,- reject表示不进行认证直接拒绝访问,- md5和- password表示使用密码进行认证,- ldap表示使用 LDAP 进行认证。
- OPTIONS:其他选项,如 LDAP 服务器地址、返回错误消息等,根据- METHOD不同而不同。
配置示例
允许某个 IP 地址的应用程序连接特定数据库
# TYPE  DATABASE USER        ADDRESS     METHOD
host   mydb    myappuser    192.168.1.1 md5
此规则表示,对于 mydb 数据库,使用 myappuser 用户进行连接,来自 192.168.1.1 的应用程序需要提供密码进行认证。
禁止特定 IP 地址连接所有数据库
# TYPE  DATABASE USER        ADDRESS     METHOD
host   all     all         192.168.2.1 reject
此规则表示,拒绝来自 192.168.2.1 地址的客户端连接所有数据库,无论是什么用户以及使用什么认证方式。
