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

Chapter 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. Peer 认证
20.10. LDAP 认证
20.11. RADIUS 认证
20.12. 证书认证
20.13. PAM 认证
20.14. BSD 认证
20.15. OAuth 授权/认证
20.16. 认证问题

当客户端应用连接到数据库服务器时,它会指定要以哪个 PostgreSQL 数据库用户名连接,这很像以某个特定用户身份登录 Unix 计算机一样。在 SQL 环境中,当前活动的数据库用户名决定了对数据库对象的访问权限 — 详见 Chapter 21。因此,必须限制哪些数据库用户能够连接。

Note

Chapter 21 中所述,PostgreSQL 实际上是以 角色 为单位进行权限管理的。在本章中,我们统一使用 数据库用户 来表示 拥有 LOGIN 权限的角色

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

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

PostgreSQL 数据库用户名在逻辑上独立于服务器所在操作系统中的用户名。如果某台服务器的所有用户在该机器上也都有账号,那么为他们分配与操作系统用户名一致的数据库用户名是有意义的。不过,接受远程连接的服务器可能有许多数据库用户并没有本地操作系统账号,在这种情况下,数据库用户名与操作系统用户名之间就不必存在任何对应关系。