Map for SSPI-致命:不存在角色-案例问题

时间:2020-10-01 07:12:18

标签: postgresql roles sspi

我使用pg_ident.conf(PostgreSQL 12,OS Windows Server 2019)文件通过以下方式为SSPI映射用户:

# MAPNAME       SYSTEM-USERNAME         PG-USERNAME
MapForSSPI      someone@COMPANY         someone

最近我不得不添加新用户,这和往常一样。我已经通过pgAdmin创建了角色“ newsomeone”,正确添加了成员​​身份,并将用户添加到pg_ident.conf中的方式为:

MapForSSPI      newsomeone@COMPANY         newsomeone

但是当该用户尝试连接时:

FATAL:  role "NewSomeone" does not exist

请注意CASE。经过进一步的测试,我意识到操作系统登录名确实设置为NewSomeone @ COMPANY,但是我真正不明白的是为什么这种带有大写字母的登录名没有映射到我的小写登录名“ newsomeone”。如果我通过pgAdmin创建了新角色“ NewSomeone”,而对pg_ident.conf没有任何更改,则连接成功。

在pg_ident.conf中用小写字母指定的PG-USERNAME“ newsomeone”,它如何查找角色“ NewSomeone”(与OS登录一样)?

1 个答案:

答案 0 :(得分:1)

pg_ident.conf允许系统认证的用户以特定的请求数据库用户身份登录,而两者的拼写不一致。不能将请求的数据库用户重写为其他数据库用户。

只要您的客户端要求以数据库用户“ NewSomeone”的身份登录,它要么以该用户身份成功,要么以该用户身份失败。不会选择其他名称登录。

您需要修复您的客户端连接代码(未显示),以便它尝试使用正确的拼写登录。

相关问题