PostgreSQL 18 中文参考文档(未翻译部分保留英文)🌐 切换到英文原版 →

20.2. 用户名映射 #

在使用某些外部统一身份认证系统(如 GSSAPI、SSPI、Ident、LDAP 或客户端 SSL 证书)时,外部凭据中携带的身份名称(例如操作系统的本地用户短名,或 Kerberos 主体名称 username@EXAMPLE.COM)往往与 PostgreSQL 内部的数据库角色名称存在格式差异。

通过在数据目录下的映射配置文件 pg_ident.conf 中定义映射规则,能够将外部身份无缝映射为数据库的内部角色:

# MAPNAME       SYSTEM-USERNAME         PG-USERNAME
mymap           bryanh                  bryan
mymap           /^([a-z]+)@EXAMPLE\.COM$ \1

在 pg_hba.conf 的认证规则选项中附加 map=mymap 即可激活该映射转换。

Example 20.2. pg_ident.conf 映射配置示例

# MAPNAME       SYSTEM-USERNAME         PG-USERNAME
mymap           bryanh                  bryan
mymap           ann                     ann
mymap           /^(.*)@example\.com$    \1