我有一个为 sql2012 开发的 ssis 包(和配置文件)来启动 sql 代理作业。整个包中使用了以下命令:
msdb.dbo.sp_start_job
msdb.dbo.sp_help_job
msdb.dbo.sp_help_jobhistory
而且,当我以有权在步骤级别启动 sql 代理作业的用户身份执行它时,我收到以下错误消息。
代码:0xC0202009 来源:收集数据 OLE DB 源 [20]
描述:SSIS 错误代码 DTS_E_OLEDBERROR。发生 OLE DB 错误。错误代码:0x80004005。OLE DB 记录可用。来源:“Microsoft SQL Server Native Client 11.0” Hresult:0x80004005 描述:“无法确定元数据,因为过程“sp_is_sqlagent_starting”中的语句“EXECUTE master.dbo.xp_sqlagent_is_starting @retval OUTPUT”调用了扩展存储过程。”。
我试过以下方法:
- 有 DBA 授予了授权执行权限,
master.dbo.xp_sqlagent_is_starting
但这并没有解决它。以系统管理员身份执行包。这工作正常 - 已关闭并在用于 OLEDB 连接的包配置文件中选择了一个选项。这似乎没有影响所讨论的问题。
- 我所看到的每一个地方,问题似乎都与
openrowset
我没有在我的包中使用的问题有关。
有没有解决方案(除了以系统管理员身份执行)?
谢谢