什么是pg_hba文件?
HBA全称是host-based authentication(基于主机的认证)。在initdb
初始化数据目录时,它会在PG数据目录下安装一个默认的pg_hba.conf
文件。pg_hba.conf默认路径是/var/lib/pgsql/<pg_version>/data
[root@node01 vagrant]# ps -ef|grep postgres
postgres 22899 1 0 16:48 ? 00:00:00 /usr/pgsql-11/bin/postmaster -D /var/lib/pgsql/11/data/
[root@node01 vagrant]# ll /var/lib/pgsql/11/data/pg_hba.conf
-rw-r--r--. 1 vagrant vagrant 911 Dec 6 16:48 /var/lib/pgsql/11/data/pg_hba.conf
pg_hba.conf中每条记录指定一种连接类型、一个客户端 IP 地址范围(如果和连接类型相关)、一个数据库名、一个用户名以及对匹配这些参数的连接使用的认证方法。第一条匹配连接类型、客户端地址、连接请求的数据库和用户名的记录将被用于执行认证。这个过程没有“落空”或者“后备”的说法:如果选择了一条记录而且认证失败,那么将不再考虑后面的记录。如果没有匹配的记录,那么访问将被拒绝。
记录格式一般是:
TYPE DATABASE USER ADDRESS METHOD
各个域的具体含义参考