Записи подсистемы аудита SQL Server

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

Аудит содержит ноль или более элементов действия аудита, записываемых в цель аудита. Цель аудита может быть двоичным файлом, журналом событий приложений Windows или журналом событий безопасности Windows. Записи, переданные в цель, могут содержать элементы, описанные в следующей таблице.

Имя столбца

Описание

Тип

Доступна всегда

event_time

Дата-время срабатывания действия, доступного для аудита.

datetime2

Да

sequence_no

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

int

Да

action_id

Идентификатор действия.

СоветСовет

Для использования значения action_id в качестве предиката оно должно быть преобразовано из строки символов в числовое значение. Дополнительные сведения см. в разделе Фильтрация подсистемы аудита SQL Server по предикату action_id / class_type.

varchar(4)

Да

succeeded

Показывает, было ли успешным действие, запустившее событие.

bit – 1 = успешное завершение, 0 = неуспешное завершение.

Да

permission_bitmask

Когда применимо, отображаются предоставленные, запрещенные или отмененные разрешения.

bigint

Нет

is_column_permission

Флаг, обозначающий разрешение уровня столбца.

bit – 1 = True, 0 = False.

Нет

session_id

Идентификатор сеанса, в котором произошло событие.

int

Да

server_principal_id

Идентификатор контекста имени входа, в котором выполнено действие.

int

Да

database_principal_id

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

int

Нет

object_ id

Основной идентификатор сущности, над которой произведен аудит. В том числе:

  • объекты сервера

  • базы данных;

  • объекты базы данных;

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

int

Нет

target_server_principal_id

Участник на уровне сервера, к которому применимо действие, доступное для аудита.

int

Да

target_database_principal_id

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

int

Нет

class_type

Тип доступной для аудита сущности, для которой проводится аудит.

varchar(2)

Да

session_server_principal_name

Участник сервера для данного сеанса.

sysname

Да

server_principal_name

Текущее имя входа.

sysname

Да

server_principal_sid

Идентификатор безопасности текущего имени входа.

varbinary

Да

database_principal_name

Текущий пользователь.

sysname

Нет

target_server_principal_name

Целевое имя входа действия.

sysname

Нет

target_server_principal_sid

Идентификатор безопасности целевого имени входа.

varbinary

Нет

target_database_principal_name

Целевой пользователь действия.

sysname

Нет

server_instance_name

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

nvarchar(120)

Да

имя_базы_данных

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

sysname

Нет

имя_схемы

Контекст схемы, в котором выполнялось действие.

sysname

Нет

object_name

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

  • объекты серверов;

  • базы данных;

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

  • объекты схемы;

  • инструкция TSQL (если имеется)

sysname

Нет

statement

инструкция TSQL (если имеется)

nvarchar(4000)

Нет

additional_information

Любые дополнительные сведения о событии хранятся в виде XML.

nvarchar(4000)

Нет

Замечания

Некоторые действия имеют незаполненное значение в столбце, так как оно может быть неприменимо к действию.

Подсистема аудита SQL Server хранит 4 000 символов данных для символьных полей в записи аудита. Если значения additional_information и statement, возвращенные из действия, доступного для аудита, возвращают более 4 000 символов, то столбец sequence_no используется для записи нескольких записей в отчет аудита для одного действия аудита, чтобы зарегистрировать эти данные. Применяется следующая обработка.

  • Столбец statement делится на фрагменты по 4 000 символов.

  • Подсистема аудита SQL Server записывает в первую строку запись аудита с частичными данными. Все другие поля повторяются в каждой строке.

  • Значение sequence_no увеличивается.

  • Этот процесс повторяется до тех пор, пока не будут записаны все данные.

Можно подключиться к данным, последовательно считывая строки с помощью значения sequence_no и столбцов event_Time, action_id и session_id для идентификации действия.

См. также

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.fn_get_audit_file (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)