我有一个集群环境,其中有很多实例。我修改了 xml 文件以允许多个实例使用 ssis。当实例与集群 ssis 位于同一节点上时,一切正常。但是,如果它们位于不同的节点上,则似乎存在身份验证问题,并且会丢失我的凭据。出于某种原因,它尝试使用匿名登录。这是完整的错误:
SSIS 服务配置中指定的 SQL 服务器不存在或不可用。当计算机上没有 SQL Server 的默认实例时,可能会发生这种情况。有关详细信息,请参阅 Server 2005 联机丛书中的“配置集成服务服务”主题。
用户“NT AUTHORITY\ANONYMOUS LOGON”登录失败。(MsDtsSrvr)
我很感激任何人在这个问题上的帮助。
谢谢,
Mat*_*t M 11
这似乎是身份验证方案问题。如果我没记错的话,ANONYMOUS LOGON 的出现表明正在使用 NTLM 而不是 Kerberos。如果您的 SQL Server 服务在域凭据下运行,则需要确保 SQL Server 存在服务主体名称 (SPN)。SetSPN 命令的语法可以在这里找到: SetSPN 简而言之,您必须将协议与 TCP 端口和服务帐户结合起来。我相信命令看起来像这样:
setspn -s MSSQLSvc/Server.Domain:TCPPort Domain\ServiceUser
Run Code Online (Sandbox Code Playgroud)
要验证您现有的连接正在使用哪种身份验证方案,请运行以下代码:
SELECT
dec.session_id,
dec.auth_scheme
FROM sys.dm_exec_connections AS dec
Run Code Online (Sandbox Code Playgroud)
如果为 Kerberos 正确配置,您将在 auth_scheme 列中看到 Kerberos。如果没有,您将看到 NTLM。
最后,如果您的设置需要多跃点身份验证,您将需要在 SQL Server 之前配置每个后续跃点以允许委派。在 Active Directory 中,转到需要通过身份验证到 SQL Server 的计算机或用户帐户的属性页,转到委派选项卡,选择“仅信任此用户进行 Kerberos 委派”,然后选择服务此帐户将向其传递身份验证(搜索您的 SQL Server 服务帐户)。
希望这可以帮助,
马特