完整错误信息:
MyPackageName:错误:SSIS 错误代码 DTS_E_OLEDBERROR。发生了 OLE DB 错误。错误代码:0x80004005。OLE DB 记录可用。来源:“Microsoft SQL Server Native Client 11.0” Hresult:0x80004005 描述:“用户‘AD\MyUser’登录失败。”。OLE DB 记录可用。来源:“Microsoft SQL Server Native Client 11.0” Hresult:0x80004005 描述:“无法打开登录请求的数据库“MyDatabase”。登录失败。”。
还有一条后续错误消息:
MyDataFlowTaskName:Error: SSIS 错误代码 DTS_E_CANNOTACQUIRECONNECTIONFROMCONNECTIONMANAGER。对连接管理器“MyConnectionManager”的 AcquireConnectionm 方法调用失败,错误代码为 0xC0202009。在此之前可能已发布错误消息,其中包含有关 AcquireConnection 方法调用失败原因的更多信息。
我需要SELECT
在数据库上运行 TSQL 查询。如何解决登录错误?
也许它有助于展示如何在 SSMS 中完成整个设置以使其正常工作。
找出需要将哪个用户添加到数据库用户中。由于我在此示例中运行已部署的 SSIS 包,因此 SSISDB 目录的报告在右上角显示“调用者”(红色下划线):
并且错误中也包含调用者:
右上角的呼叫者显示名称。如果尚不存在此名称的新用户,请添加一个新用户:
将 dbo (或任何架构) 作为“默认架构”:
将 db_owner 标记为该用户拥有的模式:
授予对数据库中您选择的模式的权限:
或者您也可以选择表作为对象:
并赋予架构
SELECT
权限或更多权限:从 SQL 代理运行作业或所选的作业步骤并检查登录是否有效。