代码之家  ›  专栏  ›  技术社区  ›  Benjamin Anderson

无法编辑或删除SSR中的计划报告

  •  3
  • Benjamin Anderson  · 技术社区  · 15 年前

    在SSRS中编辑和删除计划报告时,我当前遇到以下错误:“仅允许sysadmin角色的成员更新或删除由其他登录名拥有的作业。”

    我尝试将作业的所有者更改为SSR使用的服务帐户,我添加了用户作为系统管理员,并检查了Reporting Services本身的有限帐户的用户和密码。没有什么可以改变。

    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 ---
    
    2 回复  |  直到 6 年前
        1
  •  5
  •   Benjamin Anderson    15 年前

    我发现了问题。用于报表管理器的IIS中的SSRS应用程序池正在作为网络服务用户运行,该用户正被用作连接上下文,即使使用该服务的应用程序作为受限用户登录。

    解决:

    • 将应用程序池更改为具有数据库中作业的sysadmin权限或所有权的用户
    • 或者将网络服务用户添加为SQL用户和SysAdmin
        2
  •  0
  •   Affeke Nommu    6 年前

    我和2005年的SSRS有同样的问题。 并非所有的报告都是这样的,但它们已经触发了无法更新/删除的奇怪订阅。 IIS作为内置网络在一台服务器上运行,表位于单独的群集服务器上。我无法将IIS内置帐户权限授予远程数据库服务器上的表。 我很幸运地在目录中找到了报表的itemID,匹配了订阅表中的报表oid,并删除了具有受影响订阅itemID的行。 听起来很糟糕,但在这之后,我可以重新订阅,世界上一切都很好。