从在本地服务帐户上运行的 SQL Server 运行域用户拥有的 SSIS 包

vst*_*ien 10 sql-server ssis

我想运行一个包含 Transfer SQL Server Objects 任务的 SSIS 包。涉及的服务器在同一个域中,但 SQL Server 服务在本地服务帐户上运行。所以环境看起来是这样的:

领域

服务器 1

  • 在本地帐户上运行的 SQL Server
  • 在文件系统上:SSIS 包
  • 在 SQL Server 代理中:一项工作

服务器 2

  • 在本地帐户上运行的 SQL Server

为了能够登录到两台服务器,我创建了一个域帐户以用作服务帐户。当我使用这个域帐户登录到服务器1,然后从文件系统执行包时,每一步都成功。但是,当我尝试将作业添加到 SQL Server 时,我遇到了以下问题之一:

情况1.工作负责人:本地帐户;运行 SSIS 步骤作为域帐户的代理。当我将作业所有者设置为本地帐户,但将作业作为域帐户的代理运行时,作业本身将成功执行,但程序包会引发类似错误

执行失败,出现以下错误:“目录‘LocalApplicationData’不存在。”。

可以通过为服务器 1 上的域用户创建具有管理员权限的登录来修复此错误,但这显然不是理想的解决方案。将帐户添加到 SQL Server 代理/DTS 组之一也不起作用。

情况 2. 作业所有者:域帐户;运行 SSIS 步骤作为域帐户的代理。当我为域帐户的步骤设置作业所有者和“以用户身份运行”时,作业根本无法启动,并出现以下错误:

无法确定作业的所有者(域\域用户)Job name是否具有服务器访问权限(原因:无法获取有关 Windows NT 组/用户“域\域用户”的信息,错误代码 0x5。[SQLSTATE 42000](错误 15404)) .

我相信最后一个错误是因为 SQL Server 在本地帐户上运行,因此无法查看域帐户具有哪些权限。

使作业运行的正确方法是什么?情况 2 对我来说感觉更清晰,但似乎不可能,因为 SQL Server 在本地帐户上运行。情况 1 也可以使用,但不会在我的 SQL Server 上授予域用户管理权限。


更新:

@JonSeigel 和 @Mr.Brownstone:

这个问题似乎是由于缺乏权限造成的。但是,错误是关于不存在的“LocalApplicationData” - 为每个帐户生成的文件夹之一。我已经使用运行包的凭据登录到服务器(在此创建配置文件目录)并尝试了配置文件目录的几种权限组合。即使手动授予此特定目录的几乎所有权限,我也会收到上述错误。

在进行更多研究的同时,我在http://www.sqlservercentral.com/Forums/Topic391332-148-1.aspx#bm391441 上遇到了一个论坛主题,它非常相似——但也没有解决方案。

Wor*_*DBA 5

我个人的意见是选项 #1 是可行的方法。但我认为您无需授予域帐户本地管理员访问权限。在我看来,它需要访问某些文件夹和文件,因此您可以仅授予域用户访问成功运行包所需的资源的权限。这可以通过文件/文件夹属性对话框并选择安全选项卡来完成 - 不需要为每个文件和文件夹设置它,因为您可以设置父目录的权限并将它们设置为覆盖子属性。

我希望这可以帮助你。