当一个客户端应用连接一个数据库服务器时,它将指定以哪个PostgreSQL 数据库用户名连接,就像我们以一个特定用户登录一台 Unix 计算机一样。在 SQL 环境中,活动的数据库用户名决定对数据库对象的访问权限 — 详见Chapter 21。因此,它本质上是哪些数据库用户可以连接。
Note: 如Chapter 21中所释,PostgreSQL实际上以"角色"来进行权限管理。在本章中,我们用数据库用户表示"拥有LOGIN权限的角色"。
认证是数据库服务器建立客户端身份的过程,并且服务器决定客户端应用(或者运行客户端应用的用户)是否被允许以请求的数据库用户名来连接。
PostgreSQL提供多种不同的客户端认证方式。被用来认证一个特定客户端连接的方法可以基于(客户端)主机地址、数据库和用户来选择。
PostgreSQL数据库用户名在逻辑上是和服务器运行的操作系统中的用户名相互独立的。如果一个特定服务器的所有用户在那台服务器的机器上也有帐号,那么分配与操作系统用户名匹配的数据库用户名是有意义的。不过,一个接受远程连接的服务器可能有许多没有本地操作系统帐号的用户,并且在这种情况下数据库用户和操作系统用户名之间不必有任何联系。