Redrock Postgres 搜索 英文
版本: 9.3 / 9.4 / 9.5 / 9.6 / 10 / 11 / 12 / 13 / 14 / 15 / 16 / 17 / 18

第 20 章. 客户端认证

目录

20.1. pg_hba.conf 文件
20.2. 用户名映射
20.3. 认证方法
20.4. Trust 认证
20.5. 密码认证
20.6. GSSAPI 认证
20.7. SSPI 认证
20.8. Ident 认证
20.9. Peer 认证
20.10. LDAP 认证
20.11. RADIUS 认证
20.12. 证书认证
20.13. PAM 认证
20.14. BSD 认证
20.15. OAuth 授权/认证
20.16. 认证问题

当客户端应用程序连接到数据库服务器时,它会指定要连接的 PostgreSQL 数据库用户名,这与登录 Unix 计算机时指定某个用户名非常相似。在 SQL 环境中,活动的数据库用户名决定了对数据库对象的访问权限 — 有关更多信息,请参见 第 21 章。因此,限制哪些数据库用户可以连接至关重要。

注意

第 21 章 中所述,PostgreSQL 实际上是通过 角色 来管理权限的。在本章中,我们始终使用 数据库用户 来表示 具有 LOGIN 权限的角色

认证 是数据库服务器建立客户端身份的过程,并由此确定客户端应用程序(或运行客户端应用程序的用户)是否被允许以请求的数据库用户名进行连接。

PostgreSQL 提供了多种不同的客户端认证方法。用于认证特定客户端连接的方法可以根据(客户端)主机地址、数据库和用户来选择。

PostgreSQL 数据库用户名在逻辑上与其运行服务器的操作系统上的用户名是分开的。如果某个服务器的所有用户在该服务器机器上也有账户,那么为数据库用户分配与其操作系统用户名匹配的用户名是有意义的。然而,接受远程连接的服务器可能有很多数据库用户在本地没有操作系统账户,在这种情况下,数据库用户名和操作系统用户名之间不必有任何联系。