我想运行一个包含传输SQL Server对象任务的SSIS包。涉及的服务器在同一域中,但是SQL Server服务在本地服务帐户上运行。因此环境如下所示:
域
服务器1
- 在本地帐户上运行的SQL Server
- 在文件系统上:SSIS包
- 在SQL Server代理中:作业
服务器2
- 在本地帐户上运行的SQL Server
为了能够登录到两台服务器,我创建了一个域帐户用作服务帐户。当我使用该域帐户登录到Server 1,然后从文件系统执行该程序包时,每个步骤都会成功。但是,当我尝试将作业添加到SQL Server时,遇到以下问题之一:
情况1.职位所有者:本地帐户;运行SSIS步骤作为域帐户的代理。当我将作业所有者设置为本地帐户,但将作业作为域帐户的代理运行时,作业本身将成功执行,但是程序包会抛出如下错误
执行失败,出现以下错误:“目录'LocalApplicationData'不存在。”。
可以通过在服务器1上为域用户创建具有管理员权限的登录名来解决此错误,但这显然不是理想的解决方案。将帐户添加到SQL Server代理/ DTS组之一也不起作用。
情况2.作业所有者:域帐户;运行SSIS步骤作为域帐户的代理。当我同时为该域帐户设置作业所有者和“以用户身份运行”时,该作业将完全无法启动,并出现以下错误:
无法确定作业的所有者(域\域用户)
Job name
是否具有服务器访问权限(原因:无法获取有关Windows NT组/用户“域\域用户”的信息,错误代码0x5。[SQLSTATE 42000](错误15404)) 。
我相信最后一个错误是因为SQL Server在本地帐户上运行,并且therfor无法查看哪些权限域帐户具有该权限。
什么是使作业正常运行的正确方法?情况2对我来说比较干净,但是似乎不可能,因为SQL Server在本地帐户上运行。情况1也可以,但是不会在我的SQL Server上授予域用户管理权限。
更新:
@JonSeigel和@Brownstone先生:
这似乎是问题的原因是由于缺少权限。但是,该错误是关于不存在的“ LocalApplicationData”-为每个帐户生成的文件夹之一。我已经使用运行包的凭据登录了服务器(从而创建了配置文件目录),并尝试了配置文件目录的几种权限组合。即使手动授予该特定目录上的几乎所有权限,我也会遇到上述错误。
在进行更多研究时,我遇到了一个论坛线程,网址为http://www.sqlservercentral.com/Forums/Topic391332-148-1.aspx#bm391441,这非常相似-尽管也没有解决方案。