0

我有一个为 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 我没有在我的包中使用的问题有关。

有没有解决方案(除了以系统管理员身份执行)?

谢谢

4

0 回答 0