sys.fn_get_audit_file (Transact-SQL)

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

Применимо для следующих объектов: SQL Server (начиная с SQL Server 2008 до текущей версии).

Значок ссылки на раздел Cинтаксические обозначения в Transact-SQL

Синтаксис

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

Аргументы

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

    • <path>\* — собрать все файлы аудита в указанном месте;

    • <путь>\LoginsAudit_{GUID} ― собрать все файлы аудита, которые имеют указанное имя и идентификатор GUID.

    • <path>\LoginsAudit_{GUID}_00_29384.sqlaudit — выбрать указанный файл аудита.

    Примечание

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

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

    Примечание

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

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

    Примечание

    Аргумент audit_record_offset должен содержать допустимые записи или иметь значение по умолчанию либо значение NULL.Имеет тип bitint.

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

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

Имя столбца

Тип

Описание

event_time

datetime2

Дата и время срабатывания действия, доступного для аудита. Не допускает значения NULL.

sequence_number

int

Отслеживает последовательность записей в одной записи аудита, слишком большой, чтобы уместиться в буфере записи для аудитов. Не допускает значения NULL.

action_id

varchar(4)

Идентификатор действия. Не допускает значения NULL.

succeeded

bit

1 = успешное завершение;

0 = неуспешное завершение.

Показывает, было ли успешным действие, запустившее событие. Не допускает значения NULL. Для всех событий, отличных от событий имени входа, при этом формируются только сообщения о том, была ли проверка разрешения выполнена успешно или окончилась неудачей, а не сообщения о самой операции.

permission_bitmask

varbinary(16)

В некоторых действиях это предоставленные, запрещенные или отмененные разрешения.

is_column_permission

bit

1 = true;

0 = false.

Флаг, обозначающий разрешение уровня столбца. Не допускает значения NULL. Возвращает 0, если permission_bitmask = 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

Имя экземпляра сервера, где проводился аудит. Используется стандартный формат «сервер\экземпляр».

database_name

sysname

Контекст базы данных, в котором выполнялось действие. Допускает значение NULL. Возвращает значение NULL для аудитов, выполняемых на уровне сервера.

schema_name

sysname

Контекст схемы, в котором выполнялось действие. Допускает значение NULL. Возвращает значение NULL для аудитов, выполняемых вне схемы.

object_name

sysname

Имя сущности, для которой проводился аудит. Возможны следующие сущности:

  • Объекты сервера.

  • Базы данных.

  • Объекты базы данных.

  • Объекты схемы.

Допускает значение NULL. Возвращает NULL, если сущностью является сам сервер или если аудит не выполняется на уровне объекта. Например, проверка подлинности.

statement

nvarchar(4000)

Инструкция TSQL (если существует). Допускает значение NULL. Если неприменимо, возвращается значение NULL.

additional_information

nvarchar(4000)

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

Для действий, имеющих связанный с ними стек TSQL, отображается один уровень стека TSQL в формате XML. Используется следующий формат XML:

<tsql_stack><frame nest_level = '%u' database_name = '%.*s' schema_name = '%.*s' object_name = '%.*s' /></tsql_stack>

Параметр «frame nest_level» указывает текущий уровень вложенности кадра. Имя модуля состоит из трех частей (имя базы данных database_name, имя схемы schema_name и имя объекта object_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).

Применимо для следующих объектов: С SQL Server 2012 по SQL Server 2014 включительно.

user_defined_information

nvarchar(4000)

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

Применимо для следующих объектов: С SQL Server 2012 по SQL Server 2014 включительно.

Замечания

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

Разрешения

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

Примеры

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

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

Полный пример создания аудита см. в разделе Подсистема аудита SQL Server (Database Engine).

См. также

Справочник

CREATE SERVER AUDIT (Transact-SQL)

ALTER SERVER AUDIT (Transact-SQL)

DROP SERVER AUDIT (Transact-SQL)

CREATE SERVER AUDIT SPECIFICATION (Transact-SQL)

ALTER SERVER AUDIT SPECIFICATION (Transact-SQL)

DROP SERVER AUDIT SPECIFICATION (Transact-SQL)

CREATE DATABASE AUDIT SPECIFICATION (Transact-SQL)

ALTER DATABASE AUDIT SPECIFICATION (Transact-SQL)

DROP DATABASE AUDIT SPECIFICATION (Transact-SQL)

ALTER AUTHORIZATION (Transact-SQL)

sys.server_audits (Transact-SQL)

sys.server_file_audits (Transact-SQL)

sys.server_audit_specifications (Transact-SQL)

sys.server_audit_specification_details (Transact-SQL)

sys.database_audit_specification (Transact-SQL)

sys.database_audit_specification_details (Transact-SQL)

sys.dm_server_audit_status (Transact-SQL)

sys.dm_audit_actions (Transact-SQL)

sys.dm_audit_class_type_map (Transact-SQL)

Основные понятия

Создание аудита сервера и спецификации аудита сервера