在SSRS中编辑和删除预定报告时,我当前收到以下错误:“只允许sysadmin角色的成员更新或删除其他登录所拥有的作业。”
我已尝试将作业所有者更改为SSRS使用的服务帐户,我已将用户添加为系统管理员,并且我已检查Reporting Services本身的受限帐户的用户和密码。没有什么能有所作为。
报告服务日志只显示:
w3wp!library!a!06/03/2009-01:23:42:: e ERROR: Throwing Microsoft.ReportingServices.Diagnostics.Utilities.InternalCatalogException: An internal error occurred on the report server. See the error log for more details., ;
Info: Microsoft.ReportingServices.Diagnostics.Utilities.InternalCatalogException: An internal error occurred on the report server. See the error log for more details. ---> System.Data.SqlClient.SqlException: Only members of sysadmin role are allowed to update or delete jobs owned by a different login.
at System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection)
at System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj)
at System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj)
at System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds, RunBehavior runBehavior, String resetOptionsString)
at System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, Boolean async)
at System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method, DbAsyncResult result)
at System.Data.SqlClient.SqlCommand.InternalExecuteNonQuery(DbAsyncResult result, String methodName, Boolean sendToPipe)
at System.Data.SqlClient.SqlCommand.ExecuteNonQuery()
at Microsoft.ReportingServices.Library.InstrumentedSqlCommand.ExecuteNonQuery()
at Microsoft.ReportingServices.Library.SqlAgentScheduler.DeleteTask(Guid id)
at Microsoft.ReportingServices.Library.SchedulingDBInterface.UpdateTaskProperties(Task task, Boolean updateSqlAgentSchedule)
at Microsoft.ReportingServices.Library.TimedSubscriptionHandler.ValidateSubscriptionData(Subscription subscription, String subscriptionData, UserContext userContext)
at Microsoft.ReportingServices.Library.SubscriptionManager.ValidateSubscriptionData(Subscription subscription, String eventType, String subscriptionData)
at Microsoft.ReportingServices.Library.SubscriptionManager.SetSubscriptionProperties(Guid id, String eventType, String matchData, ExtensionSettings extensionSettings, String description, ParameterValueOrFieldReference[] parameters, DataRetrievalPlan dataSettings)
at Microsoft.ReportingServices.Library.SetSubscriptionPropertiesAction.PerformActionNow()
at Microsoft.ReportingServices.Library.RSSoapAction`1.Execute()
--- End of inner exception stack trace ---
答案 0 :(得分:5)
我发现了问题。 IIS中用于Reports Manager的SSRS应用程序池作为网络服务用户运行,即使使用该服务的应用程序以受限用户身份登录,该用户也被用作连接上下文。
解决方案:
答案 1 :(得分:0)
我在SSRS 2005中也遇到了同样的问题。 并非所有报告都像这样,但是已经删除了无法更新/删除的奇数订阅。 IIS在作为内置网络的一台服务器上运行,而表在单独的群集服务器上。我无法授予IIS内置帐户对远程数据库服务器上的表的权限。 我在目录中找到报告的itemid,在subscriptions表中匹配report_oid并删除具有受影响的订阅itemid的行时感到很幸运。 听起来很糟糕,但是在此之后,我可以重新创建订阅,世界上一切都很好。