20.4. 信任认证

当指定trust身份验证时,PostgreSQL 假定可以连接到服务器的任何人都可以使用他们指定的任何数据库用户名(甚至超级用户名)访问数据库。当然,在databaseuser列中所做的限制仍然适用。仅在与服务器的连接上具有足够的 os 级保护时,才应使用此方法。

trust身份验证适用于单用户工作站上的本地连接,并且非常方便。通常,在多用户计算机上,它本身*不**适用。但是,如果使用文件系统权限限制对服务器的 Unix 域套接字文件的访问,则即使在多用户计算机上也可以使用trust。为此,请按照Section 19.3中的说明设置unix_socket_permissions(可能还有unix_socket_group)配置参数。或者,您可以设置unix_socket_directories配置参数以将套接字文件放置在适当限制的目录中。

设置文件系统权限仅对 Unix 套接字连接有所帮助。本地 TCP/IP 连接不受文件系统权限的限制。因此,如果要将文件系统权限用于本地安全,请从pg_hba.conf删除host ... 127.0.0.1 ...行,或将其更改为非trust身份验证方法。

如果您通过指定trustpg_hba.conf行信任每台允许连接到服务器的计算机上的每个用户,则trust身份验证仅适用于 TCP/IP 连接。对于 localhost(127.0.0.1)以外的任何 TCP/IP 连接,都很少使用trust