Postgresql 中文操作指南

21.4. Trust Authentication #

指定 trust 身份验证时,PostgreSQL 假设任何能够连接到服务器的人都可以使用他们指定的任何数据库用户名称访问数据库(甚至是超级用户名称)。当然,databaseuser 列中规定的限制仍然适用。仅当对服务器连接提供适当的操作系统级保护时,才应使用此方法。

trust 身份验证适用于单用户工作站上的本地连接,并且非常方便。在多用户计算机上,它通常不适合单独使用。但是,如果使用文件系统权限限制对服务器 Unix 域套接字文件的访问,你甚至可以在多用户计算机上使用 trust。要做到这一点,请根据 Section 20.3 中的说明设置 unix_socket_permissions(可能还有 unix_socket_group)配置参数。或者,你可以设置 unix_socket_directories 配置参数,以将套接字文件放在适当受限的目录中。

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

trust 身份验证仅适用于 TCP/IP 连接,前提是你信任已通过 specify trustpg_hba.conf 行被允许连接到服务器的每台机器上的每个用户。对除 localhost(127.0.0.1)以外的任何 TCP/IP 连接使用 trust 并不合理。