🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
# Chapter 19\. 用户认证 **Table of Contents** + 19.1\. `pg_hba.conf`文件 + 19.2\. 用户名映射 + 19.3\. 认证方法 + 19.3.1\. 信任认证 + 19.3.2\. 口令认证 + 19.3.3\. GSSAPI 认证 + 19.3.4\. SSPI 认证 + 19.3.5\. Kerberos 认证 + 19.3.6\. Ident 认证 + 19.3.7\. Peer 认证 + 19.3.8\. LDAP 认证 + 19.3.9\. RADIUS 认证 + 19.3.10\. 证书认证 + 19.3.11\. PAM 认证 + 19.4\. 用户认证 当客户端与数据库服务器连接时,它将声明以哪个PostgreSQL 数据库用户身份进行连接,就像我们登录一台 Unix 计算机一样。在 SQL 环境里, 活动的数据库用户名决定数据库对象的各种访问权限(参阅 [Chapter 20](#calibre_link-13))。 因此,实际上我们要限制的是用户可以连接的数据库。 > **Note:** 如[Chapter 20](#calibre_link-13)里解释的那样,PostgreSQL 实际上用"角色"的概念管理权限。在本章里,我们用_数据库用户_表示 "带有`LOGIN`权限的角色"。 _认证_是数据库服务器识别客户端的过程。它通过一些手段判断是否允许此客户端 (或者运行这个客户端的用户)与它所声明的数据库用户名进行绑定。 PostgreSQL提供多种不同的客户端认证方式。这些方式用来认证特定的客户端连接, 可以基于(客户端)的主机地址、数据库、用户选择认证方法。 PostgreSQL数据库用户名在逻辑上是和服务器运行的操作系统用户名相互独立的。 如果某个服务器的所有用户在那台服务器机器上也有帐号,那么给数据库用户赋与操作系统用户名是有意义的。 不过,一个接收远程访问的服务器很有可能有许多没有本地操作系统帐号的用户, 因而在这种情况下数据库用户和操作系统用户名之间不必有任何联系。