当指定 trust
认证时,PostgreSQL 假设任何能连接到服务器的人都被授权使用他们指定的任何数据库用户名(包括超级用户名称)访问数据库。当然,database
和 user
列中的限制仍然适用。此方法仅应用于对服务器连接有足够操作系统级别保护的情况下。
trust
认证对于单用户工作站上的本地连接是合适且非常方便的。它通常 不 适用于多用户机器上。但是,如果您通过文件系统权限限制对服务器的 Unix-domain socket 文件的访问,则可能可以在多用户机器上使用 trust
。为此,请按照第 19.3 节中的描述设置 unix_socket_permissions
(以及可能的 unix_socket_group
)配置参数。或者,您可以设置 unix_socket_directories
配置参数,将 socket 文件放在适当受限制的目录中。
仅设置文件系统权限对 Unix-socket 连接有帮助。本地 TCP/IP 连接不受文件系统权限的限制。因此,如果您想为本地安全使用文件系统权限,请从 pg_hba.conf
中删除 host ... 127.0.0.1 ...
行,或将其更改为非 trust
认证方法。
trust
认证仅适用于 TCP/IP 连接,前提是您信任 pg_hba.conf
中指定 trust
的所有允许连接到服务器的机器上的所有用户。除了从 localhost (127.0.0.1) 连接之外,很少有合理的情况会为任何 TCP/IP 连接使用 trust
。
如果您在文档中看到任何不正确、与您对特定功能的实际经验不符或需要进一步说明的内容,请使用此表格报告文档问题。