Существует ли своего рода журнал на Azure SQL Server, чтобы проверить, когда какая-то функция была создана / удалена? - PullRequest
0 голосов
/ 03 октября 2019

Некоторые функции, которые я создал в своей базе данных Azure SQL Server, внезапно исчезли, есть ли какой-нибудь способ (какой-то журнал), где я могу проверить, когда это произошло (возможно, также, кто тоже это сделал)?

1 Ответ

0 голосов
/ 05 октября 2019

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

Один из вариантов - использовать триггеры DDL.

CREATE TRIGGER safety   
ON DATABASE   
FOR CREATE_FUNCTION, DROP_FUNCTION, ALTER_FUNCTION  
AS   
   PRINT 'Save change on a log'   
   SELECT EVENTDATA().value('(/EVENT_INSTANCE/TSQLCommand/CommandText)[1]','nvarchar(max)');

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

Наконец, аудит базы данных Azure может помочь с изменениями схемы и удаленными объектами. Ниже приведен пример:

Set-AzureRmSqlDatabaseAuditing `
 -State Enabled `
 -ResourceGroupName "resourcegroupname" `
 -ServerName "ssqlinstancename" `  #ssqlinstancename.database.windows.net
 -StorageAccountName "strageaccountname" `
 -DatabaseName "dbname" `
 -AuditActionGroup 'SCHEMA_OBJECT_CHANGE_GROUP' `
 -RetentionInDays 8 `
 -AuditAction "DELETE ON schema::dbo BY [public]" 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...