fn_get_audit_file (Transact-SQL)

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

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

Синтаксис

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

Аргументы

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

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

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

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

    ПримечаниеПримечание

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

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

    ПримечаниеПримечание

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

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

    ПримечаниеПримечание

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

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

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

Имя столбца

Тип

Описание

event_time

datetime2

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

sequence_number

int

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

action_id

char(4)

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

succeeded

bit

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

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

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

permission_bitmask

bigint

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

is_column_permission

bit

1 = true;

0 = false.

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

session_id

int

Идентификатор сеанса, во время которого произошло событие. Не допускает значение 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

char(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

nvarchar(120)

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

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. Немногие действия, доступные для аудита, содержат сведения этого вида.

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

file_name

varchar(260)

Путь и имя файла журнала аудита, из которого получена запись. Не допускает значение NULL.

audit_file_offset

bigint

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

Замечания

Если аргумент 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.

См. также

Справочник

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