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