SQL Server 2005 Аудит изменений - PullRequest
       31

SQL Server 2005 Аудит изменений

1 голос
/ 11 декабря 2008

Есть ли в SQL Server 2005 встроенный способ аудита таких вещей, как удаление хранимой процедуры? Могу ли я запросить таблицу истории? У нас есть таинственный росток, который несколько раз исчезал.

Ответы [ 6 ]

3 голосов
/ 11 декабря 2008

Вы можете построить это, используя триггеры DDL:

http://msdn.microsoft.com/en-us/library/ms190989.aspx

2 голосов
/ 11 декабря 2008

Только если вы используете триггеры DDL или используете профилировщик для трассировки текста "% DROP% PROC% procname%"

1 голос
/ 12 декабря 2008

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

0 голосов
/ 29 января 2015

Я согласен. Это может быть профилировщик SQL Server с фильтрами. Триггеры DDL существовали в SQL Server. Вы можете создать что-то вроде этого:

 CREATE TRIGGER ddl_drop_procedure 
    ON DATABASE 
    FOR DROP_PROCEDURE
   AS 
     RAISERROR ('You deleted a stored procedure',10, 1)

   GO

Другой вариант - использовать сторонние инструменты, такие как Auto Audit из codeplex или триггера apexSQL.

0 голосов
/ 24 июля 2013

[поздно, но добавляет подробности о том, как увидеть, кто внес изменение, даже до того, как система аудита будет введена в действие]

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

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

  • Сторонние инструменты, такие как ApexSQL Log или Quest Toad
  • Недокументированные функции, такие как DBCC LOG или fn_dblog

См. Эти темы для получения более подробной информации:

Как просмотреть журнал транзакций в SQL Server 2008

Проводник / анализатор журнала транзакций SQL Server

Как просмотреть историю запросов в SQL Server Management Studio

0 голосов
/ 12 декабря 2008

Вы можете настроить трассировку профилировщика для захвата события управления объектами схемы аудита и фильтрации на основе имени базы данных, которое вас интересует. Каждый раз, когда объект в схеме создается, удаляется, редактируется, он запускает событие в профилировщике, которое включает человека, который внес изменение, и имя хранимой процедуры.

Вам понадобятся как минимум эти столбцы профилировщика: ApplicationName - имя пользователя приложения, которое было запущено при внесении изменений DatabaseName - База данных, содержащая объект, измененный EventSubClass - Тип действия показывает Изменить, Изменить, Удалить, Создать и т. Д. LoginName - пользователь вносит изменения ObjectName - объект затронут

...