Что может вызвать срабатывание триггеров для одного пользователя в БД, но не для другого? - PullRequest
1 голос
/ 02 февраля 2011

У меня есть большое веб-приложение, которое использует триггеры базы данных (MSSSQL 2008) для выполнения некоторых своих функций.Он предлагает веб-интерфейс, который позволяет конечному пользователю вносить изменения в базу данных на основе форм.

Проблема заключается в том, что когда веб-приложение запускается с одним идентификатором пользователя в пуле приложений, триггеры базы данных неполучить срабатывание (у них есть функция регистрации, которая позволяет мне это видеть);но если я изменю ID пользователя в AppPool на другое имя пользователя / пароль, эти триггеры будут выполнены.Обратите внимание, что обновления таблицы выполняются в обоих сценариях.Это единственное различие, которое я могу заметить между поведением системы в двух разных обстоятельствах.Оба пользователя имеют права dbo и могут читать и записывать в базу данных.

Есть мысли о том, что может быть причиной этого?

Спасибо.

* ОБНОВЛЕНИЕ: Ни один из пользователей не является системным администратором;это происходит для ВСЕХ моих триггеров базы данных.*

* ОБНОВЛЕНИЕ № 2: После более подробного изучения проблемы я обнаружил, что функция ведения журнала полагается на очередь (да, я знаю), чтоимеет противоречивое поведение для двух учетных записей пользователей.Для меня это означает, что разрешения для обеих учетных записей как-то не совпадают, и это, скорее всего, корень проблемы.*

1 Ответ

1 голос
/ 03 февраля 2011

Это оказалось неописуемой ошибкой разрешений для этой конкретной учетной записи пользователя. Когда учетная запись была удалена из базы данных и добавлена ​​обратно - триггеры, ведение журнала и все связанные события начали работать соответствующим образом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...