Azure Отслеживание изменений БД и схемы - PullRequest
0 голосов
/ 04 мая 2020

Я новичок в Azure, и меня попросили создать ежедневный отчет о добавленных / измененных базах данных, таблицах или столбцах на Azure SQL Сервере. В частности, мы хотим знать, когда создаются новые базы данных, добавляются новые таблицы или изменяются существующие и то же самое для столбцов. На не Azure SQL сервере вы можете использовать Историю изменений схемы в стандартных отчетах, но это недоступно в Azure.

Я видел некоторые предложения, которые вы можете сделать с расширенными событиями, но я Я не нашел никаких ресурсов, чтобы показать, как это можно сделать. Любая помощь будет оценена.

1 Ответ

0 голосов
/ 04 мая 2020

Триггеры DDL действительно могут помочь вам отслеживать изменения схемы в вашей Azure SQL базе данных. Ниже приведен пример:

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

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

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]" 

Если вы также хотите отслеживать операции DML, вы можете использовать временные таблицы, но аудит базы данных также может помочь:

Set-AzureRmSqlDatabaseAuditing -ResourceGroupName "resourceGroup"
 -ServerName "SQL Server Name" -DatabaseName "AdventureWorksLT"  
 -StorageAccountName "storageAccount" 
-AuditActionGroup "SUCCESSFUL_DATABASE_AUTHENTICATION_GROUP", "FAILED_DATABASE_AUTHENTICATION_GROUP", "BATCH_COMPLETED_GROUP" 
 -AuditAction "UPDATE ON database::[AdventureWorksLT] BY [public]"  
 -RetentionInDays 60
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...