pg_hba.conf 文件
客户端认证是由一个配置文件(通常名为 pg_hba.conf)控制的,它存放在数据库集群的数据目录里。HBA 的意思是"host-based authentication",也就是基于主机的认证。在initdb 初始化数据目录的时候,它会安装一个缺省的 pg_hba.conf 文件。不过我们也可以把认证配置文件放在其它地方;参阅 hba_file 配置参数。
pg_hba.conf 文件的常用格式是一组记录,每行一条。空白行将被忽略,井号 # 开头的注释也被忽略。一条记录是由若干用空格和/或制表符分隔的字段组成。如果字段用引号包围,那么它可以包含空白。记录不能跨行存在。
每条记录声明一种连接类型、一个客户端 IP 地址范围(如果和连接类型相关的话)、一个数据库名、一个用户名字、对匹配这些参数的连接使用的认证方法。第一条匹配连接类型、客户端地址、连接请求的数据库名和用户名的记录将用于执行认证。这个处理过程没有"跨越"或者"回头"的说法:如果选择了一条记录而且认证失败,那么将不再考虑后面的记录。如果没有匹配的记录,那么访问将被拒绝。
每条记录可以是下面七种格式之一:
local database user auth-method [auth-option]
host database user CIDR-address auth-method [auth-option]
hostssl database user CIDR-address auth-method [auth-option]
hostnossl database user CIDR-address auth-method [auth-option]
host database user IP-address IP-mask auth-method [auth-option]
hostssl database user IP-address IP-mask auth-method [auth-option]
hostnossl database user IP-address IP-mask auth-method [auth-option]
各个字段的含义如下:
local
这条记录匹配企图通过 Unix 域套接字进行的连接。没有这种类型的记录,就不允许 Unix 域套接字的连接。
host
这条记录匹配企图通过 TCP/IP 进行的连接。host 记录匹配 SSL 和非 SSL 的连接请求。
【注意】除非服务器带着合适的