Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Логирование изменений в таблицах сервера  [new]
FreeBard
Member

Откуда:
Сообщений: 223
Добрый вечер!
Столкнулся с следующей проблемой.
Есть задача логировать все изменения в таблицах корпоративной БД.
Что бы потом можно было легко понять кто и когда изменил значение в поле N.
До этого момента было все запилено на триггерах.
Но база растет, нагрузка то же, и хотелось бы придумать что нибудь более ресурсоемкое.
Посмотрели в сторону технологий которые предлагает сервер.
CDC - интересная вещь, в данном случае показалась самой подходящей,но есть минус - не логирует имя пользователя. И пока обойти это не получилось..
Трассировка тоже как-то не подходит.

Кто как решает эту проблему? Возможно есть оптимальные стандартные решения?
24 ноя 14, 18:46    [16898393]     Ответить | Цитировать Сообщить модератору
 Re: Логирование изменений в таблицах сервера  [new]
FreeBard
Member

Откуда:
Сообщений: 223
FreeBard
Но база растет, нагрузка то же, и хотелось бы придумать что нибудь более ресурсоемкое.

Сорри, менее ресурсоемкое конечно))
24 ноя 14, 18:53    [16898418]     Ответить | Цитировать Сообщить модератору
 Re: Логирование изменений в таблицах сервера  [new]
товарищъ
Member

Откуда: Минск
Сообщений: 637
FreeBard
CDC - интересная вещь, в данном случае показалась самой подходящей,но есть минус - не логирует имя пользователя. И пока обойти это не получилось..
мы решали добавлением в каждую таблицу колонки "lastuser" - это поле заполняло приложение или триггер
24 ноя 14, 19:11    [16898490]     Ответить | Цитировать Сообщить модератору
 Re: Логирование изменений в таблицах сервера  [new]
FreeBard
Member

Откуда:
Сообщений: 223
хотелось бы вообще отказаться от триггеров, если это возможно.
CDC почти полностью удовлетворяет моим требованиям - сохраняет значения было-стало, работает асинхронно, но вот единственное нет юзера
24 ноя 14, 19:24    [16898561]     Ответить | Цитировать Сообщить модератору
 Re: Логирование изменений в таблицах сервера  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31994
FreeBard
До этого момента было все запилено на триггерах.
Но база растет, нагрузка то же, и хотелось бы придумать что нибудь более ресурсоемкое.
Вроде не так много ресурсов триггеры требуют...

У вас простое логирование, таблица-в-таблицу? Без вяких "сборок в XML" или "записи всех изменений в одну таблицу"?
24 ноя 14, 21:15    [16898865]     Ответить | Цитировать Сообщить модератору
 Re: Логирование изменений в таблицах сервера  [new]
o-o
Guest
есть еще DATABASE AUDIT.
CREATE DATABASE AUDIT SPECIFICATION (Transact-SQL)
можно настроить на UPDATE на всю базу.
по ресурсам не скажу, но юзера сохраняет.
зато нет значения "до", т.е. сохраняет сам STATEMENT
24 ноя 14, 22:31    [16899093]     Ответить | Цитировать Сообщить модератору
 Re: Логирование изменений в таблицах сервера  [new]
FreeBard
Member

Откуда:
Сообщений: 223
alexeyvg
FreeBard
До этого момента было все запилено на триггерах.
Но база растет, нагрузка то же, и хотелось бы придумать что нибудь более ресурсоемкое.
Вроде не так много ресурсов триггеры требуют...

У вас простое логирование, таблица-в-таблицу? Без вяких "сборок в XML" или "записи всех изменений в одну таблицу"?
Да, простое сохранение данных в таблицы-логи. Ну и плюс к этому богатый интерфейс для настройки чего и как логировать, автогенерация триггеров и прочая прикладная кутерьма. Самописная система для нужд большого банка, когда кто-то постоянно что то хочет контролировать.
25 ноя 14, 20:12    [16904521]     Ответить | Цитировать Сообщить модератору
 Re: Логирование изменений в таблицах сервера  [new]
FreeBard
Member

Откуда:
Сообщений: 223
o-o
есть еще DATABASE AUDIT.
CREATE DATABASE AUDIT SPECIFICATION (Transact-SQL)
можно настроить на UPDATE на всю базу.
по ресурсам не скажу, но юзера сохраняет.
зато нет значения "до", т.е. сохраняет сам STATEMENT

будем посмотреть
25 ноя 14, 20:16    [16904534]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить