第 20 章 Client 端身份验证

目录

当 Client 端应用程序连接到数据库服务器时,它指定要连接的 PostgreSQL 数据库用户名,这与特定用户登录 Unix 计算机的方式几乎相同。在 SQL 环境中,活动的数据库用户名确定对数据库对象的访问特权-有关更多信息,请参见Chapter 21。因此,必须限制哪些数据库用户可以连接。

Note

Chapter 21中所述,PostgreSQL 实际上按照“角色”进行特权 Management。在本章中,我们始终使用“数据库用户”来表示“具有LOGIN特权的角色”。

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

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

PostgreSQL 数据库用户名在逻辑上与服务器运行所在 os 的用户名分开。如果特定服务器的所有用户在该服务器的计算机上也都具有帐户,则可以分配与其 os 用户名匹配的数据库用户名。但是,接受远程连接的服务器可能有许多没有本地 os 帐户的数据库用户,在这种情况下,数据库用户名和 OS 用户名之间无需连接。