Заметка
Доступ к этой странице требует авторизации. Вы можете попробовать войти в систему или изменить каталог.
Доступ к этой странице требует авторизации. Вы можете попробовать сменить директорию.
Относится к:Azure SQL Database
Warehouse в Microsoft Fabric
SQL база данных в Microsoft Fabric
Функция sys.fn_get_audit_file_v2 системы предназначена для получения данных аудитских журналов с повышенной эффективностью по сравнению с предшественником. sys.fn_get_audit_file Функция вводит фильтрацию на основе времени на уровне файлов и записей, обеспечивая значительные улучшения производительности, особенно для запросов, предназначенных для определенных диапазонов времени.
Информация о возвратах из аудиторского файла, созданного аудитом сервера. Дополнительные сведения см. в статье Аудит SQL Server (ядро СУБД).
- Сведения о настройке аудита База данных SQL Azure см. в статье "Начало работы с База данных SQL аудите".
- Для получения информации о настройке аудита хранилища данных Fabric см. раздел SQL Audit Logs в Хранилище данных Fabric.
- Для информации о настройке SQL базы данных в аудите Fabric см. раздел SQL Audit in SQL Database in SQL Database in Fabric.
Соглашения о синтаксисе Transact-SQL
Синтаксис
fn_get_audit_file_v2 ( file_pattern
, { default | initial_file_name | NULL }
, { default | audit_record_offset | NULL }
, { default | start time | NULL }
, { default | end time | NULL } )
Аргументы
file_pattern
Применимо только к: База данных SQL Azure только
Указывает каталог или путь и имя файла для файла аудита, который предстоит прочитать. file_pattern — nvarchar(260).
Передача пути без шаблона имени файла приводит к ошибке.
Этот аргумент используется для указания URL-адреса BLOB-объектов (включая конечную точку хранилища и контейнер). Хотя он не поддерживает подстановочный знак звездочки, можно использовать префикс имени частичного файла (blob) (вместо полного имени большого двоичного объекта) для сбора нескольких файлов (BLOB-объектов), которые начинаются с этого префикса. Например:
<Storage_endpoint>/<Container>/<ServerName>/<DatabaseName>/— собирает все файлы аудита (BLOB-объекты) для конкретной базы данных.<Storage_endpoint>/<Container>/<ServerName>/<DatabaseName>/<AuditName>/<CreationDate>/<FileName>.xel— собирает определенный файл аудита (BLOB-объект).
initial_file_name
Применимо только к: База данных SQL Azure только
Указывает путь и имя файла для определенного файла в наборе файлов аудита, из которого предстоит начать чтение записей аудита. initial_file_name nvarchar(260).
Аргумент initial_file_name должен содержать допустимые записи или содержать defaultNULL либо значение.
audit_record_offset
Применимо только к: База данных SQL Azure только
Указывает известное расположение с файлом, указанным для initial_file_name. Если этот аргумент используется, функция начинает считывать в первую запись буфера сразу после указанного смещения.
Аргумент audit_record_offset должен содержать допустимые записи или содержать defaultNULL либо значение.
audit_record_offset является bigint.
start_time
Время начала фильтрации журналов. Записи до этого времени исключены.
end_time
Время окончания фильтрации журналов. Записи после этого времени исключаются.
Таблица возвращенной информации
В следующей таблице описывается содержимое файла аудита, возвращаемое этой функцией.
| Имя столбца | Тип | Описание |
|---|---|---|
event_time |
datetime2 | Дата и время срабатывания действия, доступного для аудита. Не допускает значения NULL. |
sequence_number |
int | Отслеживает последовательность записей в одной записи аудита, слишком большой, чтобы уместиться в буфере записи для аудитов. Не допускает значения NULL. |
action_id |
varchar(4) | Идентификатор действия. Не допускает значения NULL. |
succeeded |
bit | Показывает, было ли успешным действие, запустившее событие. Не допускает значения NULL. Для всех событий, отличных от событий имени входа, при этом формируются только сообщения о том, была ли проверка разрешения выполнена успешно или окончилась неудачей, а не сообщения о самой операции.1 = успех0 = сбой |
permission_bitmask |
varbinary(16) | В некоторых действиях эта битовая маска — это разрешения, которые были предоставлены, отклонены или отменены. |
is_column_permission |
bit | Флаг, обозначающий разрешение уровня столбца. Не допускает значения NULL. Возвращает значение 0 , когда permission_bitmask = 0значение .1 = верно0 = ложь |
session_id |
smallint | Идентификатор сеанса, в котором произошло событие. Не допускает значения NULL. |
server_principal_id |
int | Идентификатор контекста имени входа, в котором выполнено действие. Не допускает значения NULL. |
database_principal_id |
int | Идентификатор контекста пользователя базы данных, в котором выполнено действие. Не допускает значения NULL. Возвращается 0 , если это не применяется. Например, операция сервера. |
target_server_principal_id |
int | Субъект сервера, на который GRANT/DENY/REVOKE выполняется операция. Не допускает значения NULL. Возвращается 0 , если применимо. |
target_database_principal_id |
int | Субъект GRANT/DENY/REVOKE базы данных выполняет операцию. Не допускает значения NULL. Возвращается 0 , если применимо. |
object_id |
int | Идентификатор сущности, в которой произошел аудит, который включает следующие объекты: — объекты сервера -Баз данных — объекты базы данных — объекты схемы Не допускает значения NULL. Возвращает, 0 является ли сущность самой серверной или если аудит не выполняется на уровне объекта. Например, проверка подлинности. |
class_type |
varchar(2) | Тип доступной для аудита сущности, для которой проводится аудит. Не допускает значения NULL. |
session_server_principal_name |
sysname | Участник на уровне сервера для сеанса. Допускает значение NULL. Возвращает удостоверение исходного имени входа, подключенного к экземпляру ядро СУБД, если были явные или неявные параметры контекста. |
server_principal_name |
sysname | Текущее имя входа. Допускает значение NULL. |
server_principal_sid |
varbinary | Идентификатор безопасности текущего имени входа. Допускает значение NULL. |
database_principal_name |
sysname | Текущий пользователь. Допускает значение NULL. Возвращается NULL , если недоступно. |
target_server_principal_name |
sysname | Целевое имя входа действия. Допускает значение NULL. Возвращается NULL , если применимо. |
target_server_principal_sid |
varbinary | Идентификатор безопасности целевого имени входа. Допускает значение NULL. Возвращается NULL , если применимо. |
target_database_principal_name |
sysname | Целевой пользователь действия. Допускает значение NULL. Возвращается NULL , если применимо. |
server_instance_name |
sysname | Имя экземпляра сервера, где проводился аудит. Используется стандартный server\instance формат. |
database_name |
sysname | Контекст базы данных, в котором выполнялось действие. Допускает значение NULL. Возвращается NULL для аудита, происходящих на уровне сервера. |
schema_name |
sysname | Контекст схемы, в котором выполнялось действие. Допускает значение NULL. Возвращает данные NULL аудита, происходящие за пределами схемы. |
object_name |
sysname | Имя сущности, в которой произошел аудит, которая включает следующие объекты: — объекты сервера -Баз данных — объекты базы данных — объекты схемы Допускает значение NULL. Возвращает, NULL является ли сущность самой серверной или если аудит не выполняется на уровне объекта. Например, проверка подлинности. |
statement |
nvarchar(4000) | Инструкция Transact-SQL, если она существует. Допускает значение NULL. Возвращается NULL , если применимо. |
additional_information |
nvarchar(4000) | Уникальные сведения, применимые только к одиночному событию, возвращаются в формате XML. Некоторые действия, доступные для аудита, содержат такие сведения. Один уровень стека T-SQL отображается в формате XML для действий, с которыми связан стек T-SQL. Формат XML: <tsql_stack><frame nest_level = '%u' database_name = '%.*s' schema_name = '%.*s' object_name = '%.*s' /></tsql_stack>frame nest_level указывает текущий уровень вложения кадра. Имя модуля представлено в трех частях (database_nameиschema_nameobject_name). Имя модуля анализируется для обхода недопустимых XML-символов, таких как <, >, /. _x Они сбежали как _xHHHH_. Он HHHH обозначает шестнадцатеричный шестнадцатеричный код UCS-2 для символа. Допускает значение NULL. Возвращает, NULL если в событии нет дополнительных сведений. |
file_name |
varchar(260) | Путь и имя файла журнала аудита, из которого получена запись. Не допускает значения NULL. |
audit_file_offset |
bigint | Смещение буфера в файле, который содержит запись аудита. Не допускает значения NULL. |
user_defined_event_id |
smallint | Определяемый пользователем идентификатор события, переданный в качестве аргумента sp_audit_write.
NULL для системных событий (по умолчанию) и ненулевых для определяемого пользователем события. Дополнительные сведения см. в разделе sp_audit_write (Transact-SQL). |
user_defined_information |
nvarchar(4000) | Используется для записи дополнительных сведений, которые пользователь хочет записать в журнал аудита с помощью хранимой sp_audit_write процедуры. |
audit_schema_version |
int | Всегда1. |
sequence_group_id |
varbinary | Уникальный идентификатор.< |
transaction_id |
bigint | Уникальный идентификатор для идентификации нескольких событий аудита в одной транзакции. |
client_ip |
nvarchar(128) | Исходный IP-адрес клиентского приложения. |
application_name |
nvarchar(128) | Имя клиентского приложения, которое выполнило инструкцию, которая вызвала событие аудита. |
duration_milliseconds |
bigint | Длительность выполнения запроса в миллисекундах. |
response_rows |
bigint | Количество возвращаемых строк в наборе результатов.< |
affected_rows |
bigint | Количество строк, затронутых выполненной инструкцией. |
connection_id |
uniqueidentifier | Идентификатор подключения на сервере. |
data_sensitivity_information |
nvarchar(4000) | Типы сведений и метки конфиденциальности, возвращаемые запросом аудита на основе классифицированных столбцов в базе данных. Дополнительные сведения об обнаружении и классификации данных База данных SQL Azure. |
host_name |
nvarchar(128) | Имя узла клиентского компьютера. |
session_context |
nvarchar(4000) | Пары "ключ-значение", которые являются частью текущего контекста сеанса. |
client_tls_version |
bigint | Минимальная версия TLS, поддерживаемая клиентом. |
client_tls_version_name |
nvarchar(128) | Минимальная версия TLS, поддерживаемая клиентом. |
database_transaction_id |
bigint | Идентификатор транзакции текущей транзакции в текущем сеансе. |
ledger_start_sequence_number |
bigint | Порядковый номер операции в транзакции, при выполнении которой была создана версия строки. |
external_policy_permissions_checked |
nvarchar(4000) | Сведения, связанные с проверкой разрешений внешней авторизации, при создании события аудита и оценке политик внешней авторизации Purview. |
obo_middle_tier_app_id |
varchar(120) | Идентификатор приложения среднего уровня, которое подключается с помощью доступа от имени (OBO). Допускает значение NULL. Возвращает, NULL если запрос не выполняется с помощью доступа OBO. |
is_local_secondary_replica |
bit |
True Значение , если запись аудита возникает из локальной вторичной реплики только для чтения, False в противном случае. |
Улучшения по сравнению с sys.fn_get_audit_file
Функция sys.fn_get_audit_file_v2 обеспечивает существенное улучшение более старых sys.fn_get_audit_file путем внедрения эффективной фильтрации на основе времени как на уровне файлов, так и записей. Эта оптимизация особенно полезна для запросов, предназначенных для небольших диапазонов времени и может помочь обеспечить производительность в средах с несколькими базами данных.
Фильтрация на двух уровнях
Фильтрация на уровне файла: функция сначала фильтрует файлы на основе указанного диапазона времени, уменьшая количество файлов, которые необходимо сканировать.
Фильтрация на уровне записей. Затем применяется фильтрация в выбранных файлах для извлечения только соответствующих записей.
Улучшения в плане производительности
Улучшения производительности в основном зависят от времени отката файлов BLOB-объектов и диапазона времени запроса. Предположим, что однородное распределение записей аудита:
Снижение нагрузки: свести к минимуму количество файлов и записей для сканирования, это снижает нагрузку на систему и улучшает время отклика запроса.
Масштабируемость: помогает поддерживать производительность даже при увеличении числа баз данных, хотя чистое улучшение может быть менее заметным в средах с большим количеством баз данных.
Замечания
Если аргумент file_pattern, переданный для fn_get_audit_file_v2 ссылок на путь или файл, который не существует, или если файл не является файлом аудита, MSG_INVALID_AUDIT_FILE возвращается сообщение об ошибке.
Функцию fn_get_audit_file_v2 нельзя использовать, когда аудит создаётся с APPLICATION_LOGпомощью опций , SECURITY_LOG, или EXTERNAL_MONITOR .
В настоящее время в хранилище данных Fabric вы не можете получить доступ к отдельным файлам, только к папке аудита. Следующие аргументы не поддерживаются для SQL-аудита на складском элементе: file_pattern, initial_file_name, audit_record_offset.
Разрешения
Разрешения необходимы в Azure SQL Database
Требуется разрешение CONTROL DATABASE.
Администраторы сервера могут получить доступ к журналам аудита всех баз данных на сервере.
Администраторы, не являющиеся серверами, могут получать доступ только к журналам аудита из текущей базы данных.
Большие двоичные объекты, которые не соответствуют приведенным выше критериям, пропускаются (список пропущенных больших двоичных объектов отображается в выходном сообщении запроса). Функция возвращает журналы только из больших двоичных объектов, для которых разрешен доступ.
Разрешения, необходимые в базе данных Fabric SQL
Для управления аудитом с использованием ролей Fabric workspace пользователи должны иметь членство в роли Fabric workspace Contributor или иметь более высокие права. Чтобы управлять аудитом с разрешениями SQL, выполните следующие действия.
- Чтобы настроить аудит базы данных, пользователи должны иметь разрешение ALTER ANY DATABASE AUDIT.
- Чтобы просмотреть журналы аудита с помощью T-SQL, пользователи должны иметь разрешение VIEW DATABASE SECURITY AUDIT.
Для получения дополнительной информации см. раздел Аудит в базе данных Fabric SQL.
Необходимые разрешения в хранилище данных Fabric
Пользователи должны иметь разрешение на предмет Audit Fabric. Дополнительные сведения см. в разделе Разрешения.
Примеры
А. Просмотр журналов аудита SQL для Azure SQL Database
В этом примере извлекаются журналы аудита из определенного расположения Хранилище BLOB-объектов Azure, фильтрация записей между 2023-11-17T08:40:40Z и2023-11-17T09:10:40Z.
SELECT *
FROM sys.fn_get_audit_file_v2(
'https://<storage_account>.blob.core.windows.net/sqldbauditlogs/server_name/database_name/SqlDbAuditing_ServerAudit/',
DEFAULT,
DEFAULT,
'2023-11-17T08:40:40Z',
'2023-11-17T09:10:40Z')
В. Просмотр журналов аудита SQL для хранилища данных Fabric
В этом примере получаются журналы аудита из папки OneLake, выровнянные с текущим рабочим пространством и складом, фильтруя записи между 2023-11-17T08:40:40Z и 2023-11-17T09:10:40Z.
В портале Fabric получите свои workspaceID и warehouseID:
-
<workspaceID>: Посетите своё рабочее пространство в портале Fabric. Найдите GUID рабочего пространства в URL после раздела/groups/или запустивSELECT @@SERVERNAMEего в существующем складе. Если ваш/groups/URL следует/me/, вы используете стандартное рабочее пространство, и в настоящее время SQL Audit for Fabric Data Warehouse не поддерживается в стандартном рабочем пространстве. -
<warehouseID>: Посетите свой склад в портале Fabric. Найдите ID склада в URL после раздела/warehouses/.
SELECT *
FROM sys. fn_get_audit_file_v2(
'https://onelake.blob.fabric.microsoft.com/{workspaceId}/{warehouseId}/Audit/sqldbauditlogs/',
DEFAULT,
DEFAULT,
'2023-11-17T08:40:40Z',
'2023-11-17T09:10:40Z')
С. Просмотр журналов аудита SQL для баз данных SQL в Microsoft Fabric
В этом примере получаются журналы аудита из OneLake в Microsoft Fabric, между 2025-11-17T08:40:40Z и 2025-11-17T09:10:40Z.
В следующем скрипте необходимо указать идентификатор рабочего пространства Microsoft Fabric и идентификатор базы данных. Оба варианта можно найти в URL портала Fabric. Например: https://fabric.microsoft.com/groups/<fabric workspace id>/sqldatabases/<fabric sql database id>. Первая строка уникального идентификатора в URL — это Fabric workspace ID, а вторая уникальная строка идентификатора — SQL ID базы данных.
- Замените
<fabric_workspace_id>идентификатором рабочего пространства Fabric. Идентификатор рабочей области можно легко найти в URL-адресе, это уникальная строка внутри двух/символов после/groups/в окне браузера. - Замените
<fabric sql database id>на SQL базу данных в идентификаторе базы данных Fabric. Идентификатор элемента базы данных можно легко найти в URL-адресе, это уникальная строка внутри двух/символов после/sqldatabases/в окне браузера.
SELECT *
FROM sys.fn_get_audit_file_v2(
'https://onelake.blob.fabric.microsoft.com/<fabric workspace id>/<fabric sql database id>/Audit/sqldbauditlogs/',
DEFAULT,
DEFAULT,
'2025-11-17T08:40:40Z',
'2025-11-17T09:10:40Z')
Дополнительные сведения
Представления системного каталога:
- спецификации аудита сервера (Transact-SQL)
- sys.server_audit_specification_details (Transact-SQL)
- sys.database_audit_specifications (Transact-SQL)
- sys.database_audit_specification_details (Transact-SQL)
Transact-SQL:
- СОЗДАНИЕ АУДИТА СЕРВЕРА (Transact-SQL)
- ИЗМЕНИТЬ АУДИТ СЕРВЕРА (Transact-SQL)
- Удаление серверного аудита (Transact-SQL)
- СОЗДАТЬ СПЕЦИФИКАЦИЮ АУДИТА СЕРВЕРА (Transact-SQL)
- СПЕЦИФИКАЦИЯ ALTER SERVER AUDIT (Transact-SQL)
- СПЕЦИФИКАЦИЯ АУДИТА DROP SERVER (Transact-SQL)
- Создать спецификацию аудита базы данных (Transact-SQL)
- Изменение спецификации аудита базы данных (ALTER DATABASE AUDIT SPECIFICATION) в Transact-SQL
- СПЕЦИФИКАЦИЯ АУДИТА БАЗЫ ДАННЫХ DROP (Transact-SQL)
- Изменение Авторизации (Transact-SQL)
Связанный контент
- Создание аудита сервера и спецификации аудита сервера
- sys.dm_server_audit_status (Transact-SQL)
- sys.dm_audit_actions (Transact-SQL)
- sys.dm_audit_class_type_map (Transact-SQL)
- sys.server_audits (Transact-SQL)
- sys.server_file_audits (Transact-SQL)
- Начните работу с аудитом SQL-баз данных
- Журналы аудита SQL в хранилище данных Fabric