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

第 20 章. 客户端身份验证

目录

20.1. pg_hba.conf 文件
20.2. 用户名映射
20.3. 身份验证方法
20.4. 信任身份验证
20.5. 密码身份验证
20.6. GSSAPI 身份验证
20.7. SSPI 身份验证
20.8. Ident 身份验证
20.9. 对等身份验证
20.10. LDAP 身份验证
20.11. RADIUS 身份验证
20.12. 证书身份验证
20.13. PAM 身份验证
20.14. BSD 身份验证
20.15. 身份验证问题

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

注意

第 21 章 中所解释的,PostgreSQL 实际上进行权限管理,“角色”才是其术语。在本章中,我们始终使用 数据库用户 表示 具有 LOGIN 权限的角色

身份验证 是数据库服务器建立客户端身份的过程,并通过扩展,确定是否允许客户端应用程序(或运行客户端应用程序的用户)使用所请求的数据库用户名进行连接。

PostgreSQL 提供了许多不同的客户端身份验证方法。可根据(客户端)主机地址、数据库和用户选择用于对特定客户端连接进行身份验证的方法。

PostgreSQL 数据库用户名在逻辑上与服务器运行所在的操作系统的用户名分开。如果特定服务器的所有用户在服务器机器上也有各自的帐户,则为他们分配与他们的操作系统用户名相匹配的数据库用户名将很有意义。但是,接受远程连接的服务器可能拥有许多没有本地操作系统帐户的数据库用户,在这种情况下,数据库用户名与操作系统用户名之间无需有任何联系。