2008-12-11 2 views
1

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

ответ

2

Только если вы используете DDL triggers или использовать профайлер для отслеживания текста "% DROP% PROC% имя_процесса%"

0

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

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

1

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

0

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

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

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

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

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

How to view transaction log in SQL Server 2008

SQL Server Transaction Log Explorer/Analyzer

How to see query history in SQL Server Management Studio

0

Согласен. Это может быть профилировщик 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 аудита от CodePlex или триггера ApexSQL.