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登录来自不受信任的域。要解决此问题,请验证您是否登录到了正确的域。