# 第 21 章客户端身份验证

目录

21.1.这pg_hba.conf文件

21.2.用户名映射

21.3.身份验证方法

21.4.信任认证

21.5.密码认证

21.6.GSSAPI 身份验证

21.7.SSPI 身份验证

21.8.身份认证

21.9.对等身份验证

21.10.LDAP 身份验证

21.11.RADIUS 身份验证

21.12.证书认证

21.13.PAM 身份验证

21.14.BSD 认证

21.15.身份验证问题

当客户端应用程序连接到数据库服务器时,它会指定它想要连接的 PostgreSQL 数据库用户名,这与作为特定用户登录 Unix 计算机的方式非常相似。在 SQL 环境中,活动数据库用户名决定了对数据库对象的访问权限 — 请参阅第 22 章了解更多信息。因此,必须限制哪些数据库用户可以连接。

# 笔记

如中所述第 22 章,PostgreSQL实际上是按照“角色”来做权限管理的。在本章中,我们一直使用数据库用户意思是“与登录特权”。

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

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

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