我在解决方案中的一些包无法调用 Sp_SSIS_Addlogentry 存储过程,因为没有为这些包捕获日志记录。我很震惊地看到为什么同一解决方案中的其他一些包能够记录它们的条目。
有什么解决方案可以纠正这个问题吗?有什么建议吗?
我在解决方案中的一些包无法调用 Sp_SSIS_Addlogentry 存储过程,因为没有为这些包捕获日志记录。我很震惊地看到为什么同一解决方案中的其他一些包能够记录它们的条目。
有什么解决方案可以纠正这个问题吗?有什么建议吗?
“sp_ssis_addlogentry”需要权限。检查你的包是否有 EXECUTE 权限。(您的 SSIS 解决方案中是否有两个或多个连接?是否可以尝试使用 DBA / sa 登录执行 sp_ssis_addlogentry?)
希望它有所帮助,几个月前我遇到了这个问题,这为我解决了。
如果您启用对 SQL 数据库的包日志记录,也会发生这种情况。您应该将其配置为指向 msdb,因为它具有所有必需的表和存储的过程,然后将必要过程的执行权限应用于您正在执行包的帐户(如果从 SQL 代理运行,通常是代理帐户)。
我不确定哪些过程需要许可,但我通常会这样做:
USE [msdb]
GO
CREATE USER [MyDomain\svcMy_SSIS_Proxy] FOR LOGIN [MyDomain\svcMy_SSIS_Proxy]
GO
CREATE ROLE [SSIS_Executor]
GO
GRANT EXECUTE ON sp_ssis_addlogentry TO [SSIS_Executor]
GRANT EXECUTE ON sp_ssis_checkexists TO [SSIS_Executor]
GRANT EXECUTE ON sp_ssis_getfolder TO [SSIS_Executor]
GRANT EXECUTE ON sp_ssis_getpackage TO [SSIS_Executor]
GRANT EXECUTE ON sp_ssis_getpackageroles TO [SSIS_Executor]
GRANT EXECUTE ON sp_ssis_listfolders TO [SSIS_Executor]
GRANT EXECUTE ON sp_ssis_listpackages TO [SSIS_Executor]
ALTER ROLE [SSIS_Executor]
ADD MEMBER [MyDomain\svcMy_SSIS_Proxy]