Невозможно редактировать или удалять отчеты по расписанию в SSRS - PullRequest
3 голосов
/ 03 июня 2009

В настоящее время я получаю следующую ошибку при редактировании и удалении запланированных отчетов в 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 ---

Ответы [ 2 ]

5 голосов
/ 03 июня 2009

Я нашел проблему. Пул приложений SSRS в IIS для диспетчера отчетов работает как пользователь сетевой службы, который использовался в качестве контекста соединения, даже если приложение, использующее службу, входит в систему как пользователь с ограниченными правами.

Решения:

  • Измените пул приложений на пользователя с правами SysAdmin или владельцем заданий в БД.
  • Или добавьте пользователя сетевой службы в качестве пользователя SQL и SysAdmin
0 голосов
/ 20 декабря 2018

У меня такая же проблема с SSRS 2005. Не все отчеты похожи на это, но имеют странную подписку, которая не может быть обновлена ​​/ удалена. IIS работает на одном сервере как встроенная сеть, а таблицы находятся на отдельном кластерном сервере. Я не могу предоставить права встроенной учетной записи IIS для таблиц на удаленном сервере баз данных. Мне посчастливилось найти в каталоге itemid отчета, сопоставить report_oid в таблице подписок и удалить строку с затронутым itemid подписки. Звучит ужасно, но после этого я могу восстановить подписку, и все хорошо в мире.

...