尝试使用特定 SQL Server 群集的网络名称将 SSMS 连接到 Integration Services 时收到以下错误:
连接到计算机“FooDB”上的集成服务服务失败,出现以下错误:“访问被拒绝。”
如果计算机尚未配置为允许通过 DCOM 进行远程连接,或者用户确实有权通过 DCOM 访问 SQL Server Integration Services 服务,则会出现此错误。
这是一个有据可查的解决方案的常规问题。例如,请参阅此处和此处的解决方案。
但是,我已经尝试了所有我知道的解决方案,但问题仍然存在。
更详细地说,我做了以下事情:
验证连接的用户是否具有上面链接到 MsDtsServer100 上的文章中列出的 DCOM 权限:
启动和激活权限:允许本地启动、允许远程启动、本地激活、远程激活
访问权限:允许本地访问,允许远程访问
配置权限:允许读取
通过数据包嗅探器确认与连接相关的所有流量都已成功通过防火墙。在 TCP 连接断开之前显示的最后一个数据包是来自服务器的回复,其中包含 MSRPC 标头内的“拒绝访问”的 Windows 状态代码。
测试将用户添加到“分布式 COM 用户”组和/或本地管理员组,然后重新启动服务器。这允许用户使用本地节点名称(FooDBN1、FooDBN2)从 SSMS 连接到 SSIS,但是在连接到集群网络名称(FooDB)时,他们仍然会收到“访问被拒绝”错误,这是他们习惯的使用,以及在我们的其他集群上有效的方法。
此外,我还没有发现在其他集群上需要更改这些组的成员身份。
在我检查过的其他集群上,我可以使用集群名称将 SSMS 连接到 SSIS,而无需任何非默认配置。
我意识到这可能更适合 ServerFault 并且可以根据需要迁移问题,但这也是 SQL Server 问题,我认为这里的用户以前可能更有可能处理过它。
平台详情:
- 视窗服务器 2008 R2 SP1
- SQL Server 2008 R2 SP2
- 具有单个 SQL Server 实例的 2 节点主动-被动群集
谁能建议我接下来应该看什么?
更新:这神秘地今天才开始工作,但仅适用于本地管理员组的成员。据我所知,一切都没有改变。
也许远射,但值得检查文件
\Program Files\Microsoft SQL Server\100\DTS\Binn\MsDtsSrvr.ini
或您的设置中的等效项。您可能必须使用实例名称手动编辑它。否则,SSIS 连接可能会寻找不存在的默认 SQL 实例的 msdb。
该问题与底层服务器的权限有关,与 SSIS 或 MSDB 无关。我们遇到了同样的问题。暂时将用户的 AD 帐户添加到本地管理员组为我们解决了这个问题。将他们的 AD 帐户添加到 PowerUsers 或用户没有;但是,我确信我们可以找到本地安全策略中缺少的内容来实现它。