此认证方法与 password 认证方法类似,只是它使用 PAM(可插拔认证模块)作为认证机制。默认的 PAM 服务名称是 postgresql。PAM 仅用于验证用户名/密码对,以及可选的已连接的远程主机名或 IP 地址。因此,用户必须已存在于数据库中,PAM 才能用于认证。有关 PAM 的更多信息,请参阅 Linux-PAM 页面。
PAM 支持以下配置选项:
pamservicePAM 服务名称。
pam_use_hostname确定是向 PAM 模块通过 PAM_RHOST 项提供远程 IP 地址还是主机名。默认情况下,使用 IP 地址。将此选项设置为 1 可改用已解析的主机名。主机名解析可能导致登录延迟。(大多数 PAM 配置不使用此信息,因此只有当 PAM 配置专门用于利用此信息时,才需要考虑此设置。)
如果 PAM 配置为读取 /etc/shadow,则认证将失败,因为 PostgreSQL 服务器由非 root 用户启动。但是,当 PAM 配置为使用 LDAP 或其他认证方法时,这不成问题。