登录
21.4. 信任身份验证#
当指定trust
身份验证时,PostgreSQL假设任何可以连接到服务器的人都有权使用他们指定的任何数据库用户名(即使是超级用户名称)访问数据库。当然,在database
和user
列中进行的限制仍然适用。只有在对连接到服务器的操作系统级别保护足够的情况下才应使用此方法。
trust
身份验证对于单用户工作站上的本地连接来说是适当且非常方便的。它通常不适用于多用户计算机。但是,如果你使用文件系统权限来限制对服务器 Unix 域套接字文件的访问,你甚至可以在多用户计算机上使用trust
。为此,请按照第 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 连接,前提是你信任通过指定trust
的pg_hba.conf
行允许连接到服务器的每台计算机上的每个用户。除了来自localhost(127.0.0.1)的 TCP/IP 连接之外,很少有理由对其他任何 TCP/IP 连接使用trust
。