MsSQL триггеры, Verwoolf, 30-Апр-09, 11:32 [смотреть все]Ситуация такая. Хочу организовать в базе данных фиксацию внесённых изменений. Т.е. есть таблица A в которую пишутся изменения внесённые пользователем в таблицу B. Для этого естественно использую триггеры. Столкнулся с такой проблемой, я не хочу давать пользователю возможность внесения изменений в таблицу B, даю ему только права на таблицу A. Внесение изменений в таблицу A вызывает срабатывание триггера , который стучится в таблицу B, но так как у пользователя нет прав на эту таблицу то всё откатывается. Вопрос. Как организовать такую схему фиксации изменений, без предоставление прав на таблицу B пользователю?
|
- MsSQL триггеры, Verwoolf, 11:42 , 30-Апр-09 (1)
>Ситуация такая. Хочу организовать в базе данных фиксацию внесённых изменений. Т.е. есть >таблица B в которую пишутся изменения внесённые пользователем в таблицу A. >Для этого естественно использую триггеры. >Столкнулся с такой проблемой, я не хочу давать пользователю возможность внесения изменений >в таблицу B, даю ему только права на таблицу A. Внесение >изменений в таблицу A вызывает срабатывание триггера , который стучится в >таблицу B, но так как у пользователя нет прав на эту >таблицу то всё откатывается. >Вопрос. Как организовать такую схему фиксации изменений, без предоставление прав на таблицу B пользователю? Дожно быть конечно так , перепутал в одном месте название таблиц :)
- MsSQL триггеры, angra, 02:14 , 12-Май-09 (2)
Вы идете неверным путем. Сделайте интерфейс к базе через stored procedure и дайте разрешение только на них. Получим что-то вроде инкапсуляции в ООП.
- MsSQL триггеры, Verwoolf, 11:41 , 17-Май-09 (3)
>Вы идете неверным путем. Сделайте интерфейс к базе через stored procedure и >дайте разрешение только на них. Получим что-то вроде инкапсуляции в ООП. >Так и сделал. Всё прописал через хранимые процедуры. В триггерах задал выполнение этих процедур. Пользователям дал права на их выполнение. Всё работает как надо. Спасибо.
|