chr*_*ris 6 sql authentication postgresql 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
Run Code Online (Sandbox Code Playgroud)
Npgsql连接字符串:
Server=127.0.0.1;Port=5432;Database=mydb;Integrated Security=true;
我在这做错了什么?或者是没有域名它不起作用?
好的,我知道了。我不能同时允许MD5和SSPI身份验证。因此, 没有“穿通”机制-仅尝试与请求匹配的第一种身份验证方法。因此,剩下要做的就是从中删除前两行,pg_hba.conf并创建一个与Windows登录名相同的角色。让我感到烦恼的是,显然是配置错误被默默忽略,甚至日志中也没有警告-这背后有什么原因吗?