SSRS 订阅卡在 运行 状态
SSRS subscription stuck in running state
我在 SSRS 中有一个订阅,可以将报告保存到 windows 文件共享。
当我手动运行这个订阅时,结果卡在了运行状态。虽然,当尝试在没有订阅的情况下创建报告时,它在 windows 文件共享目录中成功地做到了。
我尝试查看文件夹权限,但这不是问题所在。
背景
SSRS 是一个单独的独立服务器,与另一个 SQL 服务器交互。 SQL 和 SSRS 都在不同的远程服务器上。
连接不会成为问题,因为报告是在没有订阅的情况下生成的(这也排除了任何权限问题)
好吧,这是 SQL 服务器端的一些错误,运行以下查询效果很好。
PS: 欢迎任何人解释为什么这些有效
首先 运行在 SSMS 中执行以下查询(在 SSMS 中按 Ctrl + N 以 运行 一个新查询)
USE master
GO
GRANT EXECUTE ON master.dbo.xp_sqlagent_notify TO RSExecRole
GO
GRANT EXECUTE ON master.dbo.xp_sqlagent_enum_jobs TO RSExecRole
GO
GRANT EXECUTE ON master.dbo.xp_sqlagent_is_starting TO RSExecRole
GO
然后,运行下面的查询
USE msdb
GO
GRANT EXECUTE ON msdb.dbo.sp_help_category TO RSExecRole
GO
GRANT EXECUTE ON msdb.dbo.sp_add_category TO RSExecRole
GO
GRANT EXECUTE ON msdb.dbo.sp_add_job TO RSExecRole
GO
GRANT EXECUTE ON msdb.dbo.sp_add_jobserver TO RSExecRole
GO
GRANT EXECUTE ON msdb.dbo.sp_add_jobstep TO RSExecRole
GO
GRANT EXECUTE ON msdb.dbo.sp_add_jobschedule TO RSExecRole
GO
GRANT EXECUTE ON msdb.dbo.sp_help_job TO RSExecRole
GO
GRANT EXECUTE ON msdb.dbo.sp_delete_job TO RSExecRole
GO
GRANT EXECUTE ON msdb.dbo.sp_help_jobschedule TO RSExecRole
GO
GRANT EXECUTE ON msdb.dbo.sp_verify_job_identifiers TO RSExecRole
GO
GRANT SELECT ON msdb.dbo.sysjobs TO RSExecRole
GO
GRANT SELECT ON msdb.dbo.syscategories TO RSExecRole
GO
然后禁用并启用订阅或创建新订阅并运行。这应该有效!
我在 SSRS 中有一个订阅,可以将报告保存到 windows 文件共享。
当我手动运行这个订阅时,结果卡在了运行状态。虽然,当尝试在没有订阅的情况下创建报告时,它在 windows 文件共享目录中成功地做到了。
我尝试查看文件夹权限,但这不是问题所在。
背景
SSRS 是一个单独的独立服务器,与另一个 SQL 服务器交互。 SQL 和 SSRS 都在不同的远程服务器上。
连接不会成为问题,因为报告是在没有订阅的情况下生成的(这也排除了任何权限问题)
好吧,这是 SQL 服务器端的一些错误,运行以下查询效果很好。
PS: 欢迎任何人解释为什么这些有效
首先 运行在 SSMS 中执行以下查询(在 SSMS 中按 Ctrl + N 以 运行 一个新查询)
USE master
GO
GRANT EXECUTE ON master.dbo.xp_sqlagent_notify TO RSExecRole
GO
GRANT EXECUTE ON master.dbo.xp_sqlagent_enum_jobs TO RSExecRole
GO
GRANT EXECUTE ON master.dbo.xp_sqlagent_is_starting TO RSExecRole
GO
然后,运行下面的查询
USE msdb
GO
GRANT EXECUTE ON msdb.dbo.sp_help_category TO RSExecRole
GO
GRANT EXECUTE ON msdb.dbo.sp_add_category TO RSExecRole
GO
GRANT EXECUTE ON msdb.dbo.sp_add_job TO RSExecRole
GO
GRANT EXECUTE ON msdb.dbo.sp_add_jobserver TO RSExecRole
GO
GRANT EXECUTE ON msdb.dbo.sp_add_jobstep TO RSExecRole
GO
GRANT EXECUTE ON msdb.dbo.sp_add_jobschedule TO RSExecRole
GO
GRANT EXECUTE ON msdb.dbo.sp_help_job TO RSExecRole
GO
GRANT EXECUTE ON msdb.dbo.sp_delete_job TO RSExecRole
GO
GRANT EXECUTE ON msdb.dbo.sp_help_jobschedule TO RSExecRole
GO
GRANT EXECUTE ON msdb.dbo.sp_verify_job_identifiers TO RSExecRole
GO
GRANT SELECT ON msdb.dbo.sysjobs TO RSExecRole
GO
GRANT SELECT ON msdb.dbo.syscategories TO RSExecRole
GO
然后禁用并启用订阅或创建新订阅并运行。这应该有效!