我对PostgreSQL很新,对MS SQL Server有相当多的经验。引起我注意的PostgreSQL的一个特性是SSPI身份验证,我希望这样可以更轻松地从MS SQL过渡。但是,我似乎无法让它发挥作用。
目前,服务器和客户端都在同一台Windows 7上运行,该机器不是域的成员。如果我理解正确,SSPI auth从Kerberos回退到NTLM,所以它应该没有域名 - 我是对的吗?
当我尝试连接(从.NET应用程序通过Npgsql)时,我得到一个NpgsqlException
,其中包含以下消息:Fatal: 28P01: password authentication failed for user "xxx"
该消息对我来说有点令人费解,因为我没有使用密码认证
我的pg_hba.conf
:
host all all 127.0.0.1/32 md5
host all all ::1/128 md5
host all all 127.0.0.1/32 sspi
Npgsql连接字符串:
Server=127.0.0.1;Port=5432;Database=mydb;Integrated Security=true;
我在这里做错了什么?或者只是没有域名就行不通?
答案 0 :(得分:4)
好的,明白了。 我不能同时允许MD5和SSPI身份验证。所以吧 没有“直通”机制 - 只尝试了与请求匹配的第一种身份验证方法。所以剩下要做的就是从pg_hba.conf
中删除前两行并创建一个与我的Windows登录名相同的角色。什么让我烦恼的是,显然是一个配置错误被忽略了,甚至没有日志中的警告 - 这有什么原因吗?