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

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

6 ОТВЕТОВ
РЕШЕНИЕ

Вы можете построить это с помощью триггеров DDL:

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

3
11.12.2008 17:59:50

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

2
11.12.2008 18:00:16

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

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

0
12.12.2008 16:26:40

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

1
12.12.2008 16:27:45

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

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

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

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

Смотрите эти темы для более подробной информации:

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

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

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

0
23.05.2017 12:06:23

Согласен. Это может быть профилировщик 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
29.01.2015 03:43:31