我有一个SSIS包,它从两个表中读取(在不同的实例上),执行合并连接,并且使用条件拆分来更新一个源表。我已经设置了一个连接管理器,并使用链接服务器访问另一个实例上的一个表。在连接管理器中,我使用登录名和保存的密码,并具有数据库和表的权限。它在中运行得像冠军一样。当我将它部署到我的Server 2016时,它通过错误“更新客户:错误:客户数据失败验证和返回的错误代码0xC020801B”失败验证。
我尝试用保存的密码将链接服务器移动到它自己的连接管理器。我还尝试在连接管理器中使用Windows身份验证。这些也没用。此外,当我搜索错误代码0xC020801B时,似乎什么也没有出现。
编辑:
包ProtectionLevel是EncryptSensitiveWithUserKey。
编辑二:
我将连接管理器从项目连接管理器更改为包连接管理器。我现在得到了错误:
来源:“11.0”HResult: 0x80040E4D描述:“用户‘集成’登录失败。”
用户集成可以访问有关的数据库和表。我还尝试删除登录名并使用Windows身份验证。我在两个数据库上添加了带有db_datareader和db_datawriter权限的登录服务器。在部署和执行包时,将得到链接服务器连接上的错误:
来源:"Microsoft本机客户端11.0“HResult: 0x80040E4D描述:”登录失败的用户‘域\实例_名称$’“。
发布于 2019-05-21 21:23:11
您使用的是ProtectionLevel "EncryptSensitiveWithUserKey",这意味着所有敏感数据(包括密码)都是基于您的登录使用windows加密加密的。
当您将包部署到服务器时,它无法解密这些密码。
请使用"DontSaveSensitive“并使用包参数提供所有密码。
或者更好的选择是使用windows身份验证并向您的服务帐户授予所需的特权。
发布于 2019-05-21 16:47:06
我找到这个..。
它可能值得在服务器上检查驱动程序等。
https://stackoverflow.com/questions/56242856
复制相似问题