Поделиться через


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

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

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

Имя столбца

Описание

Тип

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

event_time

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

datetime2

Да

sequence_no

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

int

Да

action_id

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

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

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

char(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 для идентификации действия.

См. также

Справочник

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