Найти, кто создал ограничение таблицы в базе данных SQL Azure - PullRequest
1 голос
/ 12 июня 2019

У меня есть база данных Azure SQL. Можно ли узнать, кто создал ограничение для таблицы? Или хотя бы когда это было добавлено? Если да, как я могу это сделать? Есть ли какие-либо сценарии / инструменты для этих целей?

заранее спасибо

Ответы [ 3 ]

0 голосов
/ 12 июня 2019

Если вы включите Azure SQL Auditing , вы можете попробовать следующее с помощью PowerShell.

Set-AzureRmSqlDatabaseAuditing `
 -State Enabled `
 -ResourceGroupName "resourcegroupname" `
 -ServerName "ssqlinstancename" `  #ssqlinstancename.database.windows.net
 -StorageAccountName "strageaccountname" `
 -DatabaseName "dbname" `
 -AuditActionGroup 'SCHEMA_OBJECT_CHANGE_GROUP' `
 -RetentionInDays 8 `
 -AuditAction "CREATE ON schema::dbo BY [public]"
0 голосов
/ 13 июня 2019

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

SELECT TOP 1000 

QS.creation_time, 

SUBSTRING(ST.text,(QS.statement_start_offset/2)+1, 

((CASE QS.statement_end_offset WHEN -1 THEN DATALENGTH(st.text) 

ELSE QS.statement_end_offset END - QS.statement_start_offset)/2) + 1 

) AS statement_text, 

ST.text, 

QS.total_worker_time, 

QS.last_worker_time, 

QS.max_worker_time, 

QS.min_worker_time 

FROM 

sys.dm_exec_query_stats QS 

CROSS APPLY 

sys.dm_exec_sql_text(QS.sql_handle) ST 

WHERE ST.text LIKE '%constraint_name%'

ORDER BY 

QS.creation_time DESC

Этот запрос займет некоторое время.

Надеюсь, это поможет.

0 голосов
/ 12 июня 2019

Azure SQL имеет функцию с именем AUDITING. Если этот параметр включен на сервере и / или в базе данных, вы можете определить учетную запись хранения для отправки журналов «Аудит сервера» и «Аудит базы данных». В хранилище Azure журналы аудита сохраняются в виде коллекции BLOB-файлов в контейнере с именем sqldbauditlogs. Используйте Power BI, например, вы можете просматривать данные журнала аудита.

Если эта функция не включена, вы будете изо всех сил пытаться найти вашего пользователя, если к базе данных не обращаются с использованием идентификаторов Azure AD.

Обратите внимание, что Advanced Threat Detection предупредит вас о необычных схемах доступа. Рекомендуется использовать наименьший уровень привилегий для доступа.

Ref: https://docs.microsoft.com/en-us/azure/sql-database/sql-database-auditing

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...