sys.fn_get_audit_file (Transact-SQL)

Применимо к:SQL Server База данных SQL Azure Управляемый экземпляр SQL Azure Azure Synapse Analytics

Возвращает сведения из файла аудита, созданного аудитом сервера в SQL Server. Дополнительные сведения см. в статье Аудит SQL Server (ядро СУБД).

Соглашения о синтаксисе Transact-SQL

Синтаксис

fn_get_audit_file ( file_pattern ,
    { default | initial_file_name | NULL } ,
    { default | audit_record_offset | NULL } )

Аргументы

file_pattern

Указывает каталог или путь и имя файла для файла аудита, который предстоит прочитать. Тип nvarchar (260).

Передача пути без шаблона имени файла приводит к ошибке.

Этот аргумент должен содержать как путь (букву диска или сетевой ресурс), так и имя файла, которое может включать символ-шаблон. Для сбора нескольких файлов из набора файлов аудита можно использовать одну звездочку (*). Например:

  • \<path>\* — сбор всех файлов аудита в указанном расположении.

  • <path>\LoginsAudit_{GUID}* — соберите все файлы аудита с указанным именем и парой GUID.

  • <path>\LoginsAudit_{GUID}_00_29384.sqlaudit — сбор определенного файла аудита.

initial_file_name

Указывает путь и имя файла для определенного файла в наборе файлов аудита, из которого предстоит начать чтение записей аудита. Тип nvarchar (260).

Аргумент initial_file_name должен содержать допустимые записи или содержать defaultNULL либо значение.

audit_record_offset

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

Аргумент audit_record_offset должен содержать допустимые записи или содержать defaultNULL либо значение. Тип bigint.

Возвращаемые таблицы

В следующей таблице описано содержимое файла аудита, которое может возвращаться этой функцией.

Имя столбца Тип Описание
action_id varchar(4) Идентификатор действия. Не допускает значения 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 если в событии нет дополнительных сведений.
affected_rows bigint Количество строк, затронутых выполненной инструкцией.

Применимо только к: База данных SQL Azure только
application_name nvarchar(128) Имя клиентского приложения, которое выполнило инструкцию, которая вызвала событие аудита.

Область применения: SQL Server 2017 (14.x) и более поздних версий и База данных SQL Azure
audit_file_offset bigint Смещение буфера в файле, который содержит запись аудита. Не допускает значения NULL.

Область применения: только SQL Server
audit_schema_version int Всегда1.
class_type varchar(2) Тип доступной для аудита сущности, для которой проводится аудит. Не допускает значения NULL.
client_ip nvarchar(128) Исходный IP-адрес клиентского приложения.

Область применения: SQL Server 2017 (14.x) и более поздних версий и База данных SQL Azure
connection_id uniqueidentifier Идентификатор подключения на сервере.

Применимо к: База данных SQL Azure и Управляемый экземпляр SQL
data_sensitivity_information nvarchar(4000) Типы сведений и метки конфиденциальности, возвращаемые запросом аудита на основе классифицированных столбцов в базе данных. Дополнительные сведения об обнаружении и классификации данных База данных SQL Azure.

Применимо только к: База данных SQL Azure только
database_name sysname Контекст базы данных, в котором выполнялось действие. Допускает значение NULL. Возвращается NULL для аудита, происходящих на уровне сервера.
database_principal_id int Идентификатор контекста пользователя базы данных, в котором выполнено действие. Не допускает значения NULL. Возвращается 0 , если это не применяется. Например, операция сервера.
database_principal_name sysname Текущий пользователь. Допускает значение NULL. Возвращается NULL , если недоступно.
duration_milliseconds bigint Длительность выполнения запроса в миллисекундах.

Применимо к: База данных SQL Azure и Управляемый экземпляр SQL
event_time datetime2 Дата и время срабатывания действия, доступного для аудита. Не допускает значения NULL.
file_name varchar(260) Путь и имя файла журнала аудита, из которого получена запись. Не допускает значения NULL.
is_column_permission bit Флаг, обозначающий разрешение уровня столбца. Не допускает значения NULL. Возвращает значение 0 , когда permission_bitmask = 0значение .

1 = true
0 = false
object_id int Идентификатор сущности, в которой произошел аудит, который включает следующие объекты:

— объекты сервера
-Баз данных
— объекты базы данных
— объекты схемы

Не допускает значения NULL. Возвращает, 0 является ли сущность самой серверной или если аудит не выполняется на уровне объекта. Например, проверка подлинности.
object_name sysname Имя сущности, в которой произошел аудит, которая включает следующие объекты:

— объекты сервера
-Баз данных
— объекты базы данных
— объекты схемы

Допускает значение NULL. Возвращает, NULL является ли сущность самой серверной или если аудит не выполняется на уровне объекта. Например, проверка подлинности.
obo_middle_tier_app_id varchar(120) Идентификатор приложения среднего уровня, подключающегося к База данных SQL Azure с помощью доступа OBO. Допускает значение NULL. Возвращает, NULL если запрос не выполняется с помощью доступа OBO.

Область применения: База данных SQL Azure
permission_bitmask varbinary(16) В некоторых действиях эта битовая маска — это разрешения, которые были предоставлены, отклонены или отменены.
response_rows bigint Число строк, возвращаемых в результирующем наборе.

Применимо к: База данных SQL Azure и Управляемый экземпляр SQL
schema_name sysname Контекст схемы, в котором выполнялось действие. Допускает значение NULL. Возвращает данные NULL аудита, происходящие за пределами схемы.
sequence_group_id varbinary Уникальный идентификатор.

Область применения: SQL Server 2016 (13.x) и более поздних версий
sequence_number int Отслеживает последовательность записей в одной записи аудита, слишком большой, чтобы уместиться в буфере записи для аудитов. Не допускает значения NULL.
server_instance_name sysname Имя экземпляра сервера, где проводился аудит. Используется стандартный формат «сервер\экземпляр».
server_principal_id int Идентификатор контекста имени входа, в котором выполнено действие. Не допускает значения NULL.
server_principal_name sysname Текущее имя входа. Допускает значение NULL.
server_principal_sid varbinary Идентификатор безопасности текущего имени входа. Допускает значение NULL.
session_id smallint Идентификатор сеанса, в котором произошло событие. Не допускает значения NULL.
session_server_principal_name sysname Участник на уровне сервера для сеанса. Допускает значение NULL. Возвращает удостоверение исходного имени входа, подключенного к экземпляру SQL Server, если были явные или неявные переключатели контекста.
statement nvarchar(4000) Инструкция Transact-SQL, если она существует. Допускает значение NULL. Возвращается NULL , если применимо.
succeeded bit Показывает, было ли успешным действие, запустившее событие. Не допускает значения NULL. Для всех событий, отличных от событий имени входа, при этом формируются только сообщения о том, была ли проверка разрешения выполнена успешно или окончилась неудачей, а не сообщения о самой операции.

1 = успех
0 = сбой
target_database_principal_id int Субъект GRANT//DENYREVOKE базы данных выполняет операцию. Не допускает значения NULL. Возвращается 0 , если применимо.
target_database_principal_name sysname Целевой пользователь действия. Допускает значение NULL. Возвращается NULL , если применимо.
target_server_principal_id int Субъект сервера, на который GRANT//DENYREVOKE выполняется операция. Не допускает значения NULL. Возвращается 0 , если применимо.
target_server_principal_name sysname Целевое имя входа действия. Допускает значение NULL. Возвращается NULL , если применимо.
target_server_principal_sid varbinary Идентификатор безопасности целевого имени входа. Допускает значение NULL. Возвращается NULL , если применимо.
transaction_id bigint Уникальный идентификатор для идентификации нескольких событий аудита в одной транзакции.

Область применения: SQL Server 2016 (13.x) и более поздних версий
user_defined_event_id smallint Определяемый пользователем идентификатор события, переданный в качестве аргумента sp_audit_write. NULL для системных событий (по умолчанию) и ненулевых для определяемого пользователем события. Дополнительные сведения см. в разделе sp_audit_write (Transact-SQL).

Область применения: SQL Server 2012 (11.x) и более поздних версий, База данных SQL Azure и Управляемый экземпляр SQL
user_defined_information nvarchar(4000) Используется для записи дополнительных сведений, которые пользователь хочет записать в журнал аудита с помощью хранимой sp_audit_write процедуры.

Область применения: SQL Server 2012 (11.x) и более поздних версий, База данных SQL Azure и Управляемый экземпляр SQL

Замечания

  • Если аргумент file_pattern, переданный для fn_get_audit_file ссылок на путь или файл, который не существует, или если файл не является файлом аудита, MSG_INVALID_AUDIT_FILE возвращается сообщение об ошибке.

  • fn_get_audit_fileнельзя использовать при создании аудита с параметрами или EXTERNAL_MONITOR параметрами.APPLICATION_LOGSECURITY_LOG

Разрешения

Требуется разрешение CONTROL SERVER.

Примеры

В следующем примере выполняется чтение из файла, который имеет имя \\serverName\Audit\HIPAA_AUDIT.sqlaudit.

SELECT *
FROM sys.fn_get_audit_file(
    '\\serverName\Audit\HIPAA_AUDIT.sqlaudit',
    DEFAULT,
    DEFAULT
);
GO

Полный пример создания аудита см. в статье Подсистема аудита SQL Server (ядро СУБД).

Ограничения

Выбор строк в sys.fn_get_audit_file списке "Создание таблицы как выбор" (CTAS) или INSERT INTO ограничение при запуске в Azure Synapse Analytics. Несмотря на успешное завершение запроса и отсутствие сообщений об ошибках, в таблице нет строк, созданных с помощью CTAS или INSERT INTO.