Аудит базы данных SQL Azure для операций DML и DDL - PullRequest
0 голосов
/ 26 октября 2018

У нас есть база данных SQL Azure с включенным аудитом в целях безопасности.Группа безопасности клиента запросила у нас список информации из баз данных Azure.

1. Просмотрите или создайте отчет обо всех вновь созданных / исправленных / удаленных записях 2. Просмотрите или создайте отчет, содержащий содержимое всех удаленных записей3. Просмотрите или создайте отчет обо всех изменениях в данной записи. 4. Просмотрите или создайте отчет обо всех профилях доступа пользователей. 5. Просмотрите или создайте отчет обо всех идентификаторах пользователя для входа и выхода из системы за определенный период. 6. Просмотр или создание.отчет о функциональном использовании по идентификатору пользователя системной активности за определенный период, например, список количества обращений пользователя к каждому виду системной активности (отчет, запрос, присоединение и т. д.) в определенный день. 7. Просмотр илисоздать отчет по системным действиям о доступе пользователей за определенный период, например, для каждого системного действия (отчет, запрос, присоединение и т. д.), перечислить каждого пользователя, который получил доступ в определенный день. 8. Просмотреть или создать отчет о запросах, выполненныхпользователи »

Конечно, из журналов аудита мы получаем, кто и что за операция dодин в базе данных.но мы не получим точные изменения данных, например, какие строки были добавлены / какие данные обновлены и какие данные были обновлены и после / какие именно пользователь удалил.

Решение опробовано: мы пробовали временные рассказы для отслеживания изменений Azure SQL DB.,он дает нам измененные данные операций DML, но не дает, если операции DDL выполняются как изменение имени столбца / удаление столбца / добавление столбца и т. д.

ЭКСПЕРТЫ SQL МОГУТ ВАМ ПОМОЧЬ.

Заранее спасибо!

1 Ответ

0 голосов
/ 26 октября 2018

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

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, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...