对于 SSIS 开发来说仍然很陌生,并且正在努力克服当前的障碍。
我有一个相当基本的 SSIS 包,它从存储在文件共享上的 Excel 工作表中读取数据,并使用 Oracle 连接管理器等待 [查找] 结果,或者使用文件中的行更新现有数据或插入新行。
在 Visual Studio 中一切都按预期运行良好,以我的个人用户身份使用 Project 编写,所有包均被保护为 ProtectionLevel: EncrypSensitiveWithUserKey。正如部署后所预期的那样,NT Service\SQLSERVERAGENT 不像我的个人用户那样具有对文件共享的上下文访问权限,因此已设置代理帐户并授予文件共享上的文件夹安全访问权限。
代理成功完成从文件共享上的 Excel 文件读取数据的任务,但是,在第二步“数据流任务”失败并出现以下错误:
我尝试过的事情:
代理帐户显示正确,具有:
我错过了什么?任何专家都可以建议如何正确配置它才能工作吗?
只是填写可能遇到类似问题的任何其他人 - 该解决方案与 ProtectionLevels 无关,我现在知道,ProtectionLevels 比部署更属于 Package/Repo 方面。就我而言,解决方案最终正是模糊错误消息所讨论的内容。我的 SSIS 包中的代理用户拥有正确的凭据、对源文件的访问权限等。
[Lookup] 被轰炸并且无法建立 Oracle 连接来检查现有记录是由于 AD 代理用户没有对包含 TNSNAMES.ora 和子文件夹的 C:\Oracle 文件夹的文件夹级别权限与 Oracle 客户;
“访问被拒绝。”
将 C:\Oracle 的所有子文件夹和项目配置为从父级继承并授予读取、写入和修改权限后 - 绝对需要修改权限才能使其工作 - 一切都开始按预期工作。
感谢上述协助调查此问题的人员提供的所有帮助和建议。