PostgreSQL SSPI身份验证 - 致命:2801:用户“xxx”的密码身份验证失败

时间:2014-01-27 18:28:38

标签: sql postgresql authentication npgsql

我对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;

我在这里做错了什么?或者只是没有域名就行不通?

1 个答案:

答案 0 :(得分:4)

好的,明白了。 我不能同时允许MD5和SSPI身份验证。所以吧 没有“直通”机制 - 只尝试了与请求匹配的第一种身份验证方法。所以剩下要做的就是从pg_hba.conf中删除前两行并创建一个与我的Windows登录名相同的角色。什么让我烦恼的是,显然是一个配置错误被忽略了,甚至没有日志中的警告 - 这有什么原因吗?