支持的版本:当前 (17) / 16 / 15 / 14 / 13
开发版本:devel
不支持的版本:12 / 11

20.4. 信任认证 #

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

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 都是不合理的。

提交更正

如果您在文档中发现任何不正确、与您在特定功能方面的经验不符或需要进一步说明的地方,请使用此表单报告文档问题。