Как проводить аудит обновлений схемы SQL Server
Есть ли способ узнать, кто обновил какой объект базы данных и когда? Я хотел бы иметь возможность видеть, какой разработчик внес изменения в какую-либо таблицу или хранимую процедуру (или любой другой объект) исторически.
Я знаю, что мы можем реализовать триггеры DDL и начать сбор этой информации с этого момента, но есть ли способ просмотреть исторические данные. База данных находится на SQL Server 2008 R2 Standard Edition.
2 ответа
Не существует стандартного способа просмотра этих данных, но это возможно при использовании сторонних инструментов. Если ваша база данных находилась в режиме полного восстановления, вы можете попробовать прочитать журнал транзакций с помощью стороннего ридера, такого как ApexSQL Log или Quest Toad. ApexSQL Log специализируется на чтении журналов и имеет больше возможностей для этого, в то время как Toad похож на SSMS и имеет много других возможностей для общего управления базой данных.
Собственные инструменты действительно не предоставляют такой возможности, так как для сторонних инструментов я предлагаю вам взглянуть на SQL Server Change Reporter от NetWrix (раскрытие: я работаю на них). Он имеет как бесплатную версию, так и бесплатную пробную версию. Продукт показывает, какие изменения были внесены в объекты, кто их внес и когда. Это должно быть решение, которое вы ищете.