20.1 pg_hba.conf文件
客户端认证一般由位于数据库数据目录下的pg_hba.conf文件控制。(HBA意为基于主机的认证,host-based authentication)。
pg_hba.conf文件的格式为每行一个记录。忽略空行,#号后的整行为注释。使用第一条符合连接条件、客户端地址、数据库、用户名的认证信息。如果第一条认证失败,那就是失败了。
格式可多样:
local database user auth-method [auth-options]
host database user address auth-method [authoptions]
hostssl database user address auth-method [authoptions]
hostnossl database user address auth-method [authoptions]
hostgssenc database user address auth-method [authoptions]
hostnogssenc database user address auth-method [authoptions]
host database user IP-address IP-mask auth-method [auth-options]
hostssl database user IP-address IP-mask auth-method [auth-options]
hostnossl database user IP-address IP-mask auth-method [auth-options]
hostgssenc database user IP-address IP-mask auth-method [auth-options]
hostnogssenc database user IP-address IP-mask auth-method [auth-options]
解释:
local
匹配使用Unix-domain sockets的连接。即本地连接;
host
匹配使用TCP/IP的连接。需调整参数listen_addresses以允许外部连接。
hostssl
匹配使用SSL加密的TCP/IP连接。
hostnossl
仅匹配未使用SSL加密的TCP/IP连接。
hostgssenc
匹配使用GSSAPI加密的TCP/IP连接。针对GSSAPI的认证方式,仅支持gss,reject和trust。
hostnogssenc
database
匹配数据库名称。
user
指定连接的数据库用户名。
address
客户端IP地址。可以是主机名,IP地址范围等。
IP-address
IP-mask
auth-method
指定认证方法。可用选项如下,详情请参见第20.3节。
trust
reject:直接拒绝;
scram-sha-256
md5
password
gss
sspi
ident
peer
ldap
radius
cert
pam
bsd
auth-options
为认证方法指定的选项,格式为name=value;
pg_hba.conf文件示例: