Есть ли встроенный способ в SQL Server 2005 для проверки таких вещей, как удаление хранимой процедуры? Есть ли таблица истории, которую я могу запросить? У нас есть тайна sproc, которая исчезла несколько раз.SQL Server 2005 Change Auditing
ответ
Вы можете построить это с использованием DDL триггеров:
Только если вы используете DDL triggers или использовать профайлер для отслеживания текста "% DROP% PROC% имя_процесса%"
Вы можете установить профайлер трассировку, чтобы захватить событие управления объектами аудита и фильтр на основе имени базы данных, о котором вы заботитесь. Каждый раз, когда объект в схеме создается, отбрасывается, редактируется, он запускает событие в профилировщике, которое включает человека, внесшего изменения, и имя хранимой процедуры.
Вы хотите, по крайней мере, эти профилировщика столбцы: ApplicationName - имя пользователя приложения был запущен, когда они сделали пересадку Имя_базы_данных - Databse содержащий объект изменен EventSubClass - Тип действия показывает изменять, модифицировать, DROP Создание и т.д. LoginName - изменение пользователем ObjectName - затронутый объект
Обратите внимание, что в SQL Server 2008 у них также есть AUDIT, чтобы заменить трассировки Profiler для аудиторских действий. Он похож, но имеет свой собственный конфигурационный интерфейс и интерфейс для просмотра результатов
[поздно один, но добавляет подробности о том, как узнать, кто внес изменения еще до системы аудита ставится на место]
Другие уже охвачены разные способы запуска аудита данных для отслеживания будущих изменений, но если у вас изначально не было какой-либо системы аудита, то очень сложно выяснить, кто и что когда и когда исторически.
Только опция - попробовать прочитать журнал транзакций, предполагая, что база данных находится в полном режиме восстановления. Проблема в том, что это не поддерживается по умолчанию. Варианты:
- Инструменты сторонних такие как ApexSQL Log или Quest Toad
- Недокументированные функции, такие как DBCC LOG или fn_dblog
Смотрите эти темы для более подробной информации:
How to view transaction log in SQL Server 2008
Согласен. Это может быть профилировщик 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.
- 1. NHibernate Change Auditing and Components
- 2. Log SQL Server Password change
- 3. Nhibernate Auditing
- 4. Триггеры SQL Server 2005
- 5. Сделки SQL Server 2005
- 6. Sql Server 2005 AutoCompletion
- 7. SQL Server 2005 xp_cmdshell
- 8. Безопасность SQL Server 2005
- 9. SQL Server 2005 SUM
- 10. sql server 2005 question
- 11. Запрос SQL Server 2005
- 12. SQL Server 2005
- 13. SQL Server 2005 Репликация
- 14. Sql Server 2005 Pivot
- 15. SQL Server 2005 - row_number()
- 16. SQL Server 2005 Query
- 17. SQL Server 2005 Views
- 18. Курсоры SQL Server 2005
- 19. Sql Server 2005 Replication
- 20. Ошибка SQL Server 2005
- 21. Отсутствует SQL Server 2005?
- 22. Аудит SQL Server 2005
- 23. SQL Server 2005 sp_send_dbmail
- 24. SQL Server 2005
- 25. Удалить SQL Server 2005
- 26. Шифрование SQL Server 2005
- 27. SQL Server 2005
- 28. Операция SQL Server 2005
- 29. Подпроцесс SQL Server 2005
- 30. SQL Server - Microsoft SQL Server 2005