2024 年 9 月 26 日: PostgreSQL 17 发布!
支持的版本:当前 (17) / 16 / 15 / 14 / 13 / 12
开发版本:devel
不支持的版本:11 / 10 / 9.6 / 9.5 / 9.4 / 9.3 / 9.2 / 9.1 / 9.0 / 8.4 / 8.3 / 8.2 / 8.1 / 8.0 / 7.4 / 7.3 / 7.2 / 7.1

第 20 章。客户端身份验证

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

注意

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

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

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

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

提交更正

如果您在文档中发现任何不正确的内容、与您对特定功能的体验不符或需要进一步澄清,请使用 此表格 报告文档问题。