首页 文章

Windows身份验证信任连接无法正常工

提问于
浏览
2

MSSQL Server位于“abc”域中并具有混合模式身份验证 . 我从不在域中或在域“xyz”中的机器连接,但使用MSSQL Jdbc驱动程序2.0在同一网络中连接 . 我已在xyz域中以管理员或帐户登录 .

它可以使用以下url连接“sa”或SQL模式身份验证 .

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

它不起作用使用凭证 "MSSQLDomain\username""abc\username" 进行窗口验证,使用以下URL

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

给出以下错误 . 用户''登录失败 . 用户未与受信任的SQL Server连接关联 .

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

如果两台计算机位于同一个域中,则对于两种身份验证模式都可以正常工如果我在不在域中的机器或同一网络内的“xyz”域中使用jtDS驱动程序,即同一子网,它可以正常工作 .

3 回答

  • 2

    我参与过将SQL服务器连接交叉到这样的域,这非常痛苦 . 要使用其他域中的凭据,您分配权限的域必须信任该帐户所在的域 . IT专业人员通常非常不愿意以这种方式信任另一个域,并且有充分的理由,所以如果这种信任关系尚未 Build ,则可能不太可能说服管理员这样做 .

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

    我希望还有其他一些方法可以做到这一点,因为听起来你会走向一个非常困难的场景 .

    希望它能帮助Rihan

  • 0

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

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

    我相信可以说有一些桥接域的方法,但是它们需要定制和棘手的实现 . 您还必须在域之间配置信任关系 .

    以下主题包含您可能会觉得有用的讨论 .

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

  • 2

    更改登录凭据可能会有所帮助,使用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 Server的服务器后,您收到以下错误消息之一:

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

    用户''登录失败 . 用户未与受信任的SQL Server连接关联 . (Microsoft SQL Server,错误:18452)

    用户''登录失败 . (Microsoft SQL Server,错误:18456)

    分辨率

    如果用户尝试使用无法验证的凭据登录,则会出现此问题 . 在以下情况中可能会发生此问题:

    场景1:

    登录可以是SQL Server登录,但服务器只接受Windows身份验证

    要解决此问题,请在混合身份验证模式下配置SQL Server .

    场景2:

    您正尝试使用SQL Server身份验证进行连接,但SQL Server上不存在使用的登录

    若要解决此问题,请验证SQL Server登录名是否存在 . 有关详细信息,请参阅在SQL Server联机丛书中创建登录 .

    场景3:

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

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

相关问题