Skip to content

第 21 章. 客户端身份验证

目录

21.1. pg_hba.conf 文件
21.2. 用户名映射
21.3. 身份验证方法
21.4. 信任身份验证
21.5. 密码身份验证
21.6. GSSAPI 身份验证
21.7. SSPI 身份验证
21.8. Ident 身份验证
21.9. 对等身份验证
21.10. LDAP 身份验证
21.11. RADIUS 身份验证
21.12. 证书身份验证
21.13. PAM 身份验证
21.14. BSD 身份验证
21.15. 身份验证问题

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

注意

第 22 章中所述,PostgreSQL实际上以“角色”的形式进行权限管理。在本章中,我们始终使用数据库用户来表示“具有LOGIN权限的角色”。

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

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

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