我在基于 Windows 的本地网络上工作,我想使用网络的帐户系统来允许用户连接到我的数据库。
据我了解,正确的方法是将 pg_hba 方法设置为“ident”,如下所示:
host all all 10.0.0.0/8 ident
但是当我这样做时,我会收到一条消息说
"Error connecting to the server: FATAL: ident authentication failed for user <user>"
据我所知,我的猜测是可能存在两个问题: - 我没有正确设置 pg_hba。- 我创建的角色与服务器找到的 ident 不匹配。
在第一种情况下,你能判断语法是否正确吗?我试图在 ident 之后添加“sameuser”,但它破坏了我的 pg_hba 和 map=sameuser,但我得到了与提到的相同的错误。
在第二种情况下,我在每个会话上使用批处理来获取用户名,例如
find /c "%username%"
或 Python3.6 函数 os.getlogin(),产生相同的结果。
PostgreSQL 如何获得它的“身份”?更重要的是,我如何重现此过程以了解 PostgreSQL 将识别的会话标识?
谢谢。