我有一个非常基本的SSIS包,它试图读取共享上托管的文件,并将其内容导入数据库表。当我在SSIS中手动运行它时,包运行正常。但是,当我设置SQL代理作业并尝试执行它时,我收到以下错误:
以用户身份执行: 域\用户名。微软 (R)SQL Server执行包实用程序 64位版本9.00.3042.00 版权所有(C)Microsoft Corp. 1984-2005。保留所有权利。
开始时间:上午10:14:17错误: 2010-05-03 10:14:17.75代码: 0xC001401E来源: DataImport连接 经理“数据文件本地”
描述:文件名 “\ 10.1.1.159 \ llpf \ datafile.dat” 在连接中指定的不是 有效。结束错误错误:2010-05-03 10:14:17.75代码:0xC001401D
来源:DataAnimalImport
描述:连接“数据文件 本地“验证失败。结束错误 DTExec:返回包执行 DTSER_FAILURE(1)。开始时间:10:14:17 上午完成时间:上午10:14:17经过: 0.594秒。包执行失败。步骤失败了。
这让我相信这是一个权限问题,但我为修复它所做的每一次尝试都失败了。
到目前为止我尝试过:
作为SQL代理帐户(DOMAIN \ SqlAgent)运行 - 产生相同的错误。 DOMAIN \ SqlAgent对共享和上传的文件都具有“完全控制”权限。
使用其他帐户的凭据(DOMAIN \ Account)设置代理帐户 - 产生相同的错误。如上所述,对该帐户的共享提供了“完全控制”权限。
给予“所有人”对共享的完全控制权限(暂时!)。产生了同样的错误。
将文件手动复制到本地路径并使用SQL代理帐户进行测试。工作得当。
添加了一个ActiveX脚本任务,该任务首先将远程托管文件复制到本地路径,然后让DTS包引用本地文件。尝试运行脚本时出现完全无描述性(甚至是SSIS标准)错误。
使用我自己的个人帐户凭据设置代理帐户 - 工作正常。但是,这不是一个可接受的解决方案,因为我的帐户中存在密码策略,并且通常以这种方式进行设置是一种不好的做法。
有什么想法吗?我仍然相信这是一个权限问题。但是,我从各种搜索中读到的内容或多或少都表示给予执行帐户对共享的权限应该有效。但是,这不是这种情况(除非我在设置共享权限时遗漏了一些模糊的东西)。
答案 0 :(得分:2)
根据您的上一次测试,这显然与权限和您的帐户拥有的权限与其他帐户的权限之间存在差异有关。 包裹的防护等级是多少?
答案 1 :(得分:0)
糟糕。看起来我在文件夹上设置了权限,但没有在共享上设置权限。一旦将权限放在共享上,就开始工作了。我的坏。
答案 2 :(得分:0)
我知道这篇文章很老,但我刚遇到同样的问题 我认为你们正在使用“sa”用户并且它没有保存包的文件夹的权限,尝试使用Windows身份验证登录到SQL,然后尝试导入包。
为我工作,希望它对你有用。