Проверка изменений SQL Server 2005

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

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

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

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

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

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

Вам понадобятся по крайней мере эти столбцы профилировщика: ApplicationName – имя пользователя приложения запускалось, когда они делали изменения. DatabaseName – Databse, содержащий объект, измененный EventSubClass. Тип действия показывает Alter, Modify, Drop, Create и т. Д. LoginName – изменение пользователем ObjectName – object пострадавших

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

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

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

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

Более подробную информацию см. В этих разделах:

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

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

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

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

Interesting Posts

Странная проблема с левым соединением и подзапросом в Select

Преобразование образа DataType в строку в SQL Server

Несколько сумм с разными предложениями в том же наборе результатов запроса

Группировка столбца зависит от результата

Почему SQL-профилировщик SQL Server указывает на то, что хранимая процедура запускается из EF4 в Master?

Проект ReadyRoll: опция SemVer

Резервное копирование не выполняется с использованием smo в больших базах данных

Улучшение производительности запроса UPDATE с подзапросами

Как бы вы создали свою базу данных, чтобы разрешить пользовательскую схему

Лучший способ получить одно значение MAX + другое значение столбца из SQL

Как это сделать в SQL? Мне нужно найти возможные перестановки небольшой таблицы данных

строка содержит символ кавычек (')

Ошибка при выполнении запроса sql join из c # ADO.net

SQL Server, генерировать скрипты, только незашифрованные хранимые процедуры

Как использовать результат SELECT в одной хранимой процедуре в другой отброшенной процедуре?

Давайте будем гением компьютера.