sql - PostgreSQL SSPI 身份验证 - fatal error : 2801: password authentication failed for user "xxx"

标签 sql postgresql authentication npgsql

我是 PostgreSQL 的新手,对 MS SQL Server 有相当多的经验。引起我注意的 PostgreSQL 的一个特性是 SSPI 身份验证,我希望它能使从 MS SQL 的转换更容易。但是,我似乎无法让它工作。

目前,服务器和客户端都在同一台 Windows 7 计算机上运行,​​该计算机不是域的成员。如果我理解正确,SSPI 身份验证会从 Kerberos 退回到 NTLM,因此它应该可以在没有域的情况下工作 - 我说得对吗?

当我尝试连接(通过 Npgsql 从 .NET 应用程序)时,我收到一个 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;

我在这里做错了什么?或者它只是没有域就无法工作?

最佳答案

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

关于sql - PostgreSQL SSPI 身份验证 - fatal error : 2801: password authentication failed for user "xxx",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21388701/

相关文章:

android - 使用给定自定义 api 的 Http Post android 登录

c# - 使用基本身份验证的 HttpWebRequest

java - 使用 Hibernate 处理不同表中不同记录的排序

django - 使用 psycopg2 将 django 与 postgresql 连接起来

database - 如何找到 postgresql 连接字符串所需的所有信息?

sql - Postgres - 在从表中选择值时在 INSERT INTO 查询中插入时间戳?

ruby-on-rails - Rails 中可能出现 HTTP 基本自定义错误?

sql - 违反了不存在的 Oracle 数据库约束

MySQL COUNT() GROUP BY 子查询(?) 用于统计每月多个商品的购买情况

java - Spark - 按 HAVING 和数据框语法分组?