При выполнении хранимой процедуры мы получаем ошибку 297
«У пользователя нет прав на выполнение этого действия»
Это происходит во время большой нагрузки (регулярно, когда задание триммера выполняется одновременно). Ошибка устраняется, когда служба, обращающаяся к SQL Server, перезапускается (и, скорее всего, задание обрезки также завершено), поэтому, очевидно, это не проблема с реальными разрешениями. Ошибка сообщается в строке хранимой процедуры, которая обращается к функции, которая, в свою очередь, обращается к динамическим представлениям управления.
В каких ситуациях может возникнуть ошибка, подобная этой, когда на самом деле это не проблема с разрешениями?
Возможно, включение флага трассировки 4616 исправит это, согласно этой статье ? Я бы хотел просто попробовать, но мне нужно больше информации. Кроме того, меня сбивает с толку тот факт, что это периодически возникающая проблема, возникающая только в периоды высокой активности.
Я пытался воспроизвести эту же ошибку в других ситуациях (в которых также не было реальных проблем с разрешениями), и обнаружил, что при запуске этого на SQL Server 2005 у меня возникает проблема с разрешениями:
select * from sys.dm_db_index_physical_stats(66,null,null, null, null)
(66 - недействительный DBID.)
Однако мы не используем dm_db_index_physical_stats с неправильным DBID. Мы используем dm_tran_session_transactions и dm_tran_active_transactions, но они не принимают параметры, поэтому я не могу получить ошибку с ними. Но я подумала, возможно, что проблема связана.
Спасибо за любые идеи.