SQL Server代理 - 不信任域消息



运行SQL Server2016。当前有一个解决方案,该解决方案托管在一个域中,当然我们的访问点位于另一个域中。我们需要以自动方式提取数据。

我们已经添加了一个Windows凭据,该凭据管理器收集端点信息和一组凭据。

例如。

  • Internet或NetworkAddress:myDatabase.Remotedomain.com
  • 用户名:remotedomain 用户名
  • 密码:密码

此解决方案可与许多工具,Excel,SSMS Direct查询,Visual Studio一起使用。用户进入端点(服务器URL或IP/端口),并使用Windows Integrated Security。连接是建立的,凭证商店可以做到这一点,用户已进行身份验证。

SSM示例

  • 服务器名称:mydatabase.remotedomain.com
  • 身份验证:Windows身份验证

我的挑战是SSIS和SQL代理。SSIS软件包在VS2015中运行。将软件包部署到Integration Services目录 - 突出显示软件包和执行。

创建一个SQL Server代理作业并执行作业,我收到此礼物....

登录失败:登录来自不信任的域,不能与Windows Authentication

一起使用

我创建了一个SQL凭据,创建了一个代理(SSIS软件包执行),创建了一个使用凭据的运行的作业,但以相同的结果结束。凭据必须在我的本地域或工作不运行。...当然,LocalDomain 用户名不能针对远程数据连接进行身份验证。因此,代理无济于事。

我期望的是,Windows凭据管理器将像手动或通过Excel或其他任何其他方法一样交换凭据...

我与Microsoft开了一张票,并与他们的高级资源合作。

这似乎是SQL代理中的一个错误。没有已知的原因或问题可以防止SQL代理从Windows凭据存储中拾取远程凭据,但不是。

一种工作替代方法是使用命令行实用程序DTEXEC。对SSIS项目进行了一些轻微的修改,以确保所有连接经理都处于包装级别而不是项目(创建参考问题)。

此解决方案不是理想的,但是它可以使用,并且DTEXEC允许SSIS拾取商店中所需的凭据并无问题执行。

Microsoft完成了研究并回到我身边后,我将跟进,机票仍然开放。

对不起,但是将小组更改为全球或本地广告帐户的通用无效。我对如何在SQL代理使用的本地帐户上进行更改会产生任何区别。该解决方案可以通过本地帐户替换在所有工具中,并在凭据管理器中使用远程帐户设置。如果我错过了它,并且进行此更改应该有效,请在可能的情况下提供一个示例。

再次看来此过程没有被执行/随后是SQL Server代理,因为它在其他任何地方都可以使用,而是在代理执行的作业中。

所以我再次希望有人以前见过这样的东西,并且有解决方案。

我的最终目标是仅自动从没有信任的远程SQL Server中提取数据。我希望代理解决方案可以正常工作,但是当您将凭据设置为远程域用户名时,该作业甚至都不会执行。

是否有一种方法可以在SSIS软件包中设置我的连接,以将凭据设置为远程域用户名 pwd。我刺了一个刺,也无法飞行。如果是这样,一个例子对我来说是无价的。

我不在乎我是如何进入目标线的,只需要...感谢所有的帮助

您的窗口凭据帐户应该是一个广告用户帐户,该帐户的范围为全球或通用范围。在您拥有多个域的情况下,通用组很有用。

该过程将在所谓的任何上下文(即由您,SQL代理或代理帐户)中执行。除非您务实地做到这一点,否则它不会更改可执行的上下文,除非这是坏主意...

也有类似的问题,这是一场噩梦!一路上学习了很多有趣的广告配置技巧。

了解用户和组帐户指出以下内容:

组可以具有不同的范围 - 本地,本地,全局和通用。也就是说,组具有不同的区域。

全球组:

用于授予域或森林中任何域中对象的权限的组。全球小组的成员只能包括定义其定义域的帐户和组。

通用组:

用于在整个域或森林中以广大规模授予权限的组。全球小组的成员包括来自域或森林中任何领域的账户和群体。

编辑

如果它只是从一个域将数据拉到另一个域,可以首先将数据导出到不信任域中的CSV,然后SFTP到您的环境中,在该环境中,ETL的TL(变换和负载)(eTcress--可以进行变换加载)进程?

SSIS将是一个很好的工具,但是C#和PowerShell也可以使用。

最新更新