sql-server - SSRS 订阅卡在运行状态
问题描述
我在 SSRS 中订阅了将报告保存到 Windows 文件共享的订阅。
当我手动运行此订阅时,结果卡在运行状态。虽然,当尝试在没有订阅的情况下创建报告时,它在 windows 文件共享目录中成功地做到了这一点。
我尝试查看文件夹权限,但这不是问题。
背景
SSRS 是与另一个 SQL Server 交互的单独的独立服务器。SQL 和 SSRS 都位于不同的远程服务器上。
连接不会成为问题,因为在没有订阅的情况下生成报告(这也排除了任何权限问题)
解决方案
好的,这是 SQL Server 端的一些错误,运行以下查询会产生奇迹。
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
然后禁用并启用订阅或创建新订阅并运行它。这应该工作!
推荐阅读
- java - java错误:不一致的数据类型:预期的NUMBER得到了BINARY
- cookies - js-cookie 相同站点和 httpOnly
- python - 各种深度的列表子列表的排列,同时在 Python 上保持它们分开
- java - SpringBoot 2.1.9.RELEASE——读取资源文件
- mysql - 为什么 MySQL 不应该从失败/回滚的事务中恢复主键?
- azure - 是否有替代 Set-AzSqlInstanceDatabaseBackupShortTermRetentionPolicy 的 REST API?
- php - Laravel - 资源上的 whenLoaded() 和 count()
- asynchronous - 对于网络绑定的 IO,在较差的网络条件下,异步的好处是否更大?
- kubernetes - Kubectl 缺少 Terraform Cloud
- sparql - 连接两组 URI 时 SparQL 查询速度慢