Решения для ведения журнала доступа к базе данных SQL Server 2008 / ASP.NET 3.5 - PullRequest
2 голосов
/ 13 июля 2011

У меня есть веб-приложение ASP.NET 3.5 с серверной частью SQL Server 2008.

Существует новое требование регистрировать весь доступ к базе данных следующим образом:

Для выбора:

  1. Какая хранимая процедура была выполнена
  2. Какие параметры были переданы

Для вставок:

  1. Какая хранимая процедура была выполнена
  2. Какие параметры были переданы
  3. Журнал вставленных строк (строк)

Для обновлений:

  1. Какая хранимая процедура была выполнена
  2. Какие параметры были переданы
  3. Записать старые строки
  4. Записать новые строки

Для удаления:

  1. Какая хранимая процедура была выполнена
  2. Какие параметры были переданы
  3. Журнал удаленных строк (ы)

Есть также требование отчетности, но это не так важно в данный момент.

Прежде чем я начал писать свой собственный регистратор, мне было интересно, есть ли какое-нибудь решение, которое делает это?

CHange Data Capture выглядит многообещающе, но регистрирует только изменения данных (без выбора)

ps: у моего веб-приложения есть опция «локальной установки», когда пользователь покупает исходный код и размещает приложение,поэтому SQL Profiler не будет работать как регистратор, как описано в этот вопрос

1 Ответ

1 голос
/ 21 сентября 2011

Вы можете создать трассировку, используя tsql для захвата всего вышеперечисленного. Так как вы упомянули, что вы не можете использовать Profiler, просто используйте системный хранимый proc sp_trace_create для создания трассировки. активность пользователя может быть зарегистрирована в файле трассировки. Вы можете указать макс. размер файла трассировки, а также интервалы, когда вы хотите повернуть файлы журнала. Некоторые другие системные SP, которые вам понадобятся:

  • SP_TRACE_CREATE
  • SP_TRACE_SETEVENT
  • SP_TRACE_SETFILTER
  • sp_trace_setstatus

для справки: http://technet.microsoft.com/en-us/library/ms188662.aspx

для учебника: http://sqlserverpedia.com/wiki/Running_Traces_with_TSQL

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