我有一个通过导入导出(32位)工具创建的SSIS包。当我通过执行包实用程序手动执行包时,包运行成功,没有任何问题。但是,当我尝试通过SSMS中的作业代理运行程序包时,我不断收到错误。我得到的主要错误似乎是:
无法解密受保护的XML节点“DTS:Password”并显示错误 0x8009000B“密钥无法在指定状态下使用”您可能不是 授权访问此信息。有错误时会发生此错误 加密错误。验证是否有正确的密钥。
我正在使用SQL Server 2008 R2。
我已经在某种程度上研究了这个错误,我认为它与包保护级别有关。我觉得我已经尝试过最有意义的配置,但似乎没有一个适合我。选项包括:
- 使用用户密钥加密敏感数据
- 不保存敏感数据
- 使用密码
加密敏感数据- 使用用户密钥加密所有数据
- 使用密码
加密所有数据- 依靠服务器存储和访问控制角色
我觉得我应该在这里使用最后一个选项(依靠服务器存储...),因为我更喜欢使用SQL Server身份验证。我在SQL Server导入和导出向导的“选择目标”窗口中使用SQL Server身份验证,同样地,当我在作业步骤属性的“常规”选项卡上的SSMS中创建作业代理时,我使用相同的用户名和密码。是否有可能需要添加到我在SSMS中使用的用户 - 即使它在SSMS之外工作?
我想知道可能产生影响的其他事情是在导入和导出工具的“列映射”窗口中选中“删除并重新创建目标表”选项。我在执行作业代理之前使用存储过程来删除表,我觉得我在某一点上工作 - 这可能与它有关吗?
最让我感到困惑的是,当我通过“SQL Server Execute Utility Package”工具手动执行它时,它运行没有问题。
如果有帮助的话,我已经包含了上面提到的一些窗口的图像。