В Azure это можно сделать, но необходимо включить аудит SQL на уровне базы данных или сервера.Затем вы должны выполнить следующее, используя функцию sys.fn_get_audit_file
:
SET NOCOUNT ON;
SELECT
server_principal_id
, database_principal_id
, target_server_principal_id
, target_database_principal_id
, session_server_principal_name
, server_principal_name
, server_principal_sid
, database_principal_name
, target_server_principal_name
, target_server_principal_sid
, target_database_principal_name
, server_instance_name
, database_name
, schema_name
, object_name
, statement
, additional_information
FROM sys.fn_get_audit_file(
'https://blob_storage_name.blob.core.windows.net/sqldbauditlogs/SERVER_NAME/DATABASE_NAME/SqlDbAuditing_ServerAudit/2018-11-27' -- INSERT date here
, DEFAULT
, DEFAULT
)
WHERE statement LIKE '%CREATE EVENT SESSION%';
Это должно вернуть вам необходимую информацию.Помните, что SQL Auditing может генерировать МНОГО данных, поэтому вам может потребоваться запрашивать файлы аудита за день или даже за час (вы можете прочитать, как шаблоны даты используются с sys.fn_get_audit_file
здесь ).
Если вы обнаружите, что объем данных слишком велик для запроса, вы всегда можете загрузить файлы аудита (файлы .xel, аудит SQL реализован с помощью расширенных событий) и написать специальный инструмент для этого (Microsoft предлагаетбиблиотека для анализа расширенных файлов событий через LINQ. Подробнее здесь ).