Windows身份验证受信任的连接不工作

问题描述:

MSSQL服务器位于“abc”域中,并具有混合模式身份验证。 我从不在域或域“xyz”中但使用MSSQL Jdbc驱动程序2.0在同一网络中的计算机进行连接。我已经以管理员或帐户登录到xyz域。Windows身份验证受信任的连接不工作

它工作正常使用下面的URL连接“sa”或SQL模式身份验证。

jdbc:sqlserver://%DB_IP%:%DB_PORT%;SelectMethod=cursor;DatabaseName=dbname

它不使用证书"MSSQLDomain\username""abc\username"以下网址

jdbc:sqlserver://%DB_IP%:%DB_PORT%;SelectMethod=cursor;integratedSecurity=true;DatabaseName=dbname;

给出以下错误工作窗口验证,使用。 用户登录失败。该用户未与可信的SQL Server连接相关联。

我已经尝试添加属性Trusted_Connection =是的网址,但仍然给出相同的错误。 我不想映射SQL Server的驱动器。我可以通过提供“MSSQLDomain \ username”和密码来访问SQL Server计算机的任何共享文件夹。

如果两台机器都在同一个域中,它对两种认证模式都可以正常工作。 如果我使用jtDS驱动程序从不在域或在同一网络内的“xyz”域内,即相同的子网,它工作正常。

这是Windows身份验证的故意和正确的行为。

这是因为您从中连接的域与您的SQL Server实例所在的域不是相同的Windows域。

我相信有桥接域的方法可以这么说,但它们需要自定义和棘手的实现。您还必须配置域之间的信任关系。

以下线程包含您可能会觉得有用的讨论。

http://sql-server-performance.com/Community/forums/p/24601/137574.aspx

我曾经参与制作的SQL服务器连接十字架那样域,这是非常痛苦的。为了使用来自其他域的凭据,您分配权限的域必须信任帐户来自的域。 IT专业人员通常非常不愿意以这种方式信任另一个域,并且出于充分的理由,如果这种信任关系尚未建立,可能不太可能说服管理员这样做。

建立了信任关系后,您可能需要在Active Directory中注册SQL Server的SPN,并分配委派权限。这种类型的环境非常难以设置,故障排除和维护。

我希望有其他方式可以做到这一点,因为听起来好像你正在走向一个非常困难的情景。

希望它可以帮助 Rihan

更改登录凭据可能会帮助, 使用SQL身份验证,而不是NT验证

https://support.microsoft.com/en-us/kb/555332

症状

您安装Microsoft SQL Server 2014年以后, SQL Server 2012,SQL Server 2008,SQL Server 2005或SQL Server 2000,并尝试连接到运行SQL Se的服务器rver,您会收到以下错误消息之一:

登录用户'%。* ls'失败。登录名是SQL Server登录名,不能与Windows身份验证一起使用。%。* ls

用户登录失败。用户未与可信的SQL Server连接相关联。 (Microsoft SQL Server,错误:18452)

用户登录失败。 (微软SQL服务器,错误:18456)

分辨率

如果用户尝试与无法验证凭据登录会出现此问题。可能会出现此问题在以下情形:

方案1:

登录可能是一个SQL Server登录,但服务器仅接受Windows身份验证

要解决此问题,在混合验证配置SQL Server模式。

方案2:

您正在尝试使用SQL Server身份验证连接,但使用的SQL Server

上不存在登录要解决此问题,验证SQL Server登录。有关更多信息,请参阅在SQL Server联机丛书中创建登录。

方案3:

登录可以使用Windows身份验证,但是登录是一个无法识别的Windows主体

一个无法识别的Windows主体意味着Windows无法验证的登录。这可能是因为Windows登录来自不受信任的域。要解决此问题,请验证您是否登录到了正确的域。