Как проводить аудит запросов SQL Server 2008 через службы WCF?

#sql-server #wcf #sql-server-2008 #audit

#sql-сервер #wcf #sql-server-2008 #аудит

Вопрос:

Я хочу сохранять любые журналы / таблицы с каждым запросом, выполняемым моим приложением.

Я знаю, что мог бы сделать это, закодировав его (прежде чем я выполняю какой-либо запрос, я вставляю новую строку в таблицу журнала с запросом и пользователем, который его выполняет.

Я читал, что это может быть сделано автоматически, но я не уверен, как это может работать со службами WCF. Я имею в виду, что каждый запрос будет выполняться одним и тем же пользователем SQL, и это было бы не очень полезно для операций аудита (мне нужно знать, КТО делал каждый запрос, и пользователи будут проверены по моим собственным таблицам users).

У вас когда-нибудь был подобный сценарий? Заранее спасибо!

Ответ №1:

В качестве отправной точки, возможно, стоит рассмотреть возможность выполнения этого с помощью профилировщика SQL Server. Обычно вы можете найти это в меню Tools в Management Studio.

Вы можете настроить трассировку для захвата всех SQL, выполняемых на сервере. Что еще более важно, у вас есть множество параметров фильтрации, которые могут быть применены, чтобы вы фиксировали только те данные, которые вас интересуют (например, DatabaseName, UserName).

Эта информация может храниться непосредственно в таблице SQL, что должно дать вам возможность присоединиться к ней. Конечно, выполнение чего-либо подобного приведет к некоторым накладным расходам на SQL box.

Ответ №2:

Вы можете попробовать функцию аудита SQL Server. Он проверяет отдельные события или группы событий как на уровне сервера, так и на уровне базы данных. Однако имейте в виду, что аудит на уровне базы данных доступен только в версиях SQL Server Enterprise и Developer