当指定 trust
认证时,PostgreSQL 假设任何可以连接到服务器的人都有权访问数据库,并使用他们指定的任何数据库用户名(甚至是超级用户名称)。当然,database
和 user
列中设置的限制仍然适用。仅当服务器连接具有足够的操作系统级别保护时,才应使用此方法。
trust
认证适用于单用户工作站上的本地连接,并且非常方便。通常,在多用户计算机上单独使用它 不 适用。但是,如果使用文件系统权限限制对服务器的 Unix 域套接字文件的访问,即使在多用户计算机上,也可能可以使用 trust
。要执行此操作,请按照第 19.3 节中的描述设置 unix_socket_permissions
(以及可能的 unix_socket_group
)配置参数。或者,您可以设置 unix_socket_directories
配置参数,将套接字文件放置在适当受限的目录中。
设置文件系统权限仅对 Unix 套接字连接有帮助。本地 TCP/IP 连接不受文件系统权限的限制。因此,如果您想使用文件系统权限进行本地安全保护,请从 pg_hba.conf
中删除 host ... 127.0.0.1 ...
行,或者将其更改为非 trust
认证方法。
仅当您信任 pg_hba.conf
文件中指定 trust
的行所允许的每台机器上的每个用户时,trust
认证才适用于 TCP/IP 连接。除了来自 localhost (127.0.0.1) 的连接之外,对任何 TCP/IP 连接使用 trust
都是不合理的。
如果您在文档中发现任何不正确、与您在特定功能方面的经验不符或需要进一步说明的地方,请使用此表单报告文档问题。