Вход на сайт
Триггера MS SQL
333
NEW 20.06.06 15:51
Такой вот вопросик возник - Можно ли внутри триггера получить информацию об том, на какую операцию он был задействован?
Делается аудитинг для операционистики и по задаче любая операция сопровождается копированием исходной инфы в другую базу или файловую группу.
И второй вопросик - Что лучше использовать для аудитинга - файловую группу или отдельную базу?
Делается аудитинг для операционистики и по задаче любая операция сопровождается копированием исходной инфы в другую базу или файловую группу.
И второй вопросик - Что лучше использовать для аудитинга - файловую группу или отдельную базу?
NEW 20.06.06 16:29
в ответ scorpi_ 20.06.06 15:56
Смотрел, не нашел.
Как _создать_ - нет проблем. Вопрос не в том, как создать соответствующий триггер, вопрос в том, как внутри триггера, созданного для Update, Insert, Delete выяснить что же именно вызвало срабатывание...
P.S. Пока просто разнес триггеры по операциям.

Как _создать_ - нет проблем. Вопрос не в том, как создать соответствующий триггер, вопрос в том, как внутри триггера, созданного для Update, Insert, Delete выяснить что же именно вызвало срабатывание...

P.S. Пока просто разнес триггеры по операциям.

20.06.06 22:07
в ответ digital_pilot 20.06.06 19:32
Тогда - в топку. Бо при этом не различаются INSERT/UPDATE операции, из-за которых, собственно, и делается аудит.
Что скажешь по поводу отдельной базы или отдельной файловой группы для аудитинга. Я этим не занимался, не было необходимости, и потому не могу прийти к определенному решению. Босс говорит, что он решал такую задачу в пределах одной базы и уперся в какие-то проблемы со сложностью системы. Подозреваю, что решалось все в пределах PRIMARY-группы, что, разумеется, изначально не есть гут. Но сам склоняюсь к созданию второй файловой группы - база, по моему мнению, должна быть единой... хотя реализацию в виде отдельной базы уже сделал.

Что скажешь по поводу отдельной базы или отдельной файловой группы для аудитинга. Я этим не занимался, не было необходимости, и потому не могу прийти к определенному решению. Босс говорит, что он решал такую задачу в пределах одной базы и уперся в какие-то проблемы со сложностью системы. Подозреваю, что решалось все в пределах PRIMARY-группы, что, разумеется, изначально не есть гут. Но сам склоняюсь к созданию второй файловой группы - база, по моему мнению, должна быть единой... хотя реализацию в виде отдельной базы уже сделал.

NEW 20.06.06 23:32
ну, если в inserted че-та есть, а в deleted нету, то, значит, INSERT... только так и различают, если лень несколько похожих триггеров городить... маленький недостаток - если ни 1 запись не изменена, то невозможно определить, какая все же операция вызвала триггер... Кстати, для аудита рекомендуют именно 3 триггера.
мне тоже больше нравится вариант в 1 базе... как-то не по себе при мысли о синхронизации юзеров и прав, пусть даже автоматизированной; а если еще про app roles подумаю, вообще тоскливо становится.
вот, кста, статейка про аудит: http://www.sql.ru/articles/mssql/2005/030701ChangesLogging.shtml
а, еще - profiler forever :D
в ответ Murr 20.06.06 22:07
ну, если в inserted че-та есть, а в deleted нету, то, значит, INSERT... только так и различают, если лень несколько похожих триггеров городить... маленький недостаток - если ни 1 запись не изменена, то невозможно определить, какая все же операция вызвала триггер... Кстати, для аудита рекомендуют именно 3 триггера.
мне тоже больше нравится вариант в 1 базе... как-то не по себе при мысли о синхронизации юзеров и прав, пусть даже автоматизированной; а если еще про app roles подумаю, вообще тоскливо становится.
вот, кста, статейка про аудит: http://www.sql.ru/articles/mssql/2005/030701ChangesLogging.shtml
а, еще - profiler forever :D
NEW 21.06.06 00:07
в ответ digital_pilot 20.06.06 23:32
Юзера меня мало беспокоят - не того уровня уровня аудит. Пока по крайней мере. Но все же каждая запись имеет отметину юзверя.
Роли в базе - вообще не страшно - с ними никто не возится, Роли по приложению - прописаны в таблице, аудируемой.
Спасибо за ссылку - статью посмотрел. Полезного для себя почти не получил - исключение - нашел у себя баг, который пока не проявился - по задаче за раз изменяется одна запись. Но поправить - надо будет.
Спасибки за помощь и пусть не Профайлер рулит тобой, а ты - Профайлером...
Роли в базе - вообще не страшно - с ними никто не возится, Роли по приложению - прописаны в таблице, аудируемой.
Спасибо за ссылку - статью посмотрел. Полезного для себя почти не получил - исключение - нашел у себя баг, который пока не проявился - по задаче за раз изменяется одна запись. Но поправить - надо будет.
Спасибки за помощь и пусть не Профайлер рулит тобой, а ты - Профайлером...
