PostgreSQL 中文参考文档
🌐 英文原版 官方 ↗

Chapter 20. 客户端认证

Table of Contents

20.1. pg_hba.conf 配置文件
20.2. 用户名映射
20.3. 认证方法概览
20.3.1. 信任认证(trust)
20.3.2. 口令认证(scram-sha-256 与 md5)
20.3.3. GSSAPI 认证
20.3.4. SSPI 认证
20.3.5. Ident 认证
20.3.6. Peer 认证
20.3.7. LDAP 认证
20.3.8. RADIUS 认证
20.3.9. 证书认证(cert)
20.3.10. PAM 认证
20.3.11. BSD 认证
20.3.12. OAuth 2.0 认证
20.4. 常见认证故障排错

当客户端应用程序连接到数据库服务器时,它必须在握手请求中声明希望以哪个 PostgreSQL 数据库用户的身份进行连接。在 SQL 环境内部,生效的数据库用户名严格决定了其在各个数据库对象上的操作权限(详见 Chapter 21)。因此,严格把控哪些客户端能够连接到哪些用户账户,构成了系统安全的第一道防线。

Note

正如 Chapter 21 中所述,PostgreSQL 在底层使用“角色”来统筹管理权限。在本章中,我们通篇使用数据库用户来专门指代“具有 LOGIN 登录权限的角色”。

身份认证(Authentication)是指数据库服务器核实客户端身份的物理校验过程,进而判定该客户端应用(或运行该应用的终端用户)是否被系统授权以所请求的数据库用户名建立连接。

PostgreSQL 提供了全套工业级的客户端认证方法。服务器可以根据客户端的来源物理 IP 地址、待连接的目标数据库以及请求登录的用户名等多个维度的组合,精细匹配并选用不同的认证方法。