使用LinqPad连接到MSSQL时,有一种方法可以指定SPN

问题描述 投票:0回答:1

我们正在使用Windows身份验证使用SQL Server,并且发现我们需要指定SPN才能使连接正常工作。我们的应用程序部分使用通过UDL文件连接的VB6,部分使用我们通过LinqPad运行的一系列临时脚本。使用UDL文件的服务器SPN功能,我们可以使连接正常工作,但找不到与LinqPad等效的连接。

有人知道如何使它正常工作吗?我们已经尝试使用ServerSPN =作为“高级”设置上的附加连接字符串参数,但无法识别。

更多详细信息。

  • 客户端应用程序在Windows 7上的域A中。所有客户端连接均来自域A中的帐户。
  • SQL服务器在域B中。
  • 域和服务器之间有一种选择性的信任方式被添加到启用该信任的组中。
  • 来自linqpad连接的错误是:“目标主体名称不正确。无法生成SSPI上下文”。
  • 一旦设置了服务器SPN =值,UDL文件就允许连接正常工作,否则会出现相同的错误。

更新:在测试过程中,我们发现指定SPN会导致对服务器的NTLM身份验证。因此,如果有一种方法可以迫使客户这样做,那对我们来说就是一条可行的途径。

更新+变通方法:我们偶然发现了变通方法,将服务器以不同的名称添加到主机文件中似乎触发了回退到NTLM身份验证以适用于LinqPad连接。如果有人知道如何正确解决此问题,我们将不胜感激,但现在我们正在使用主机文件解决方法。

感谢任何帮助

sql-server kerberos linqpad
1个回答
0
投票

我可以在这里想到几个可能的问题:

  • 您的单向信任关系设置错误;
  • 太有选择性;
  • 域之间的AD版本中的不兼容性。

我建议尝试Kerberos Configuration Manager for SQL Server,它可能会让您深入了解根本原因。

[此外,我相信您可能有更多的机会在ServerFault上而不是在此处进行询问。从外观上看,这是一个配置错误的问题,与编程无关。

© www.soinside.com 2019 - 2024. All rights reserved.