Формат журнала аудита Базы данных SQL

Область применения: База данных SQL Azure Управляемый экземпляр SQL Azure Azure Synapse Analytics

Аудит Базы данных SQL Azure отслеживает события базы данных и записывает их в журнал аудита в учетной записи хранилища Azure или отправляет их в концентратор событий или Log Analytics для последующей обработки и анализа.

Соглашения об именах

Аудит больших двоичных объектов

Журналы аудита, хранящиеся в Хранилище BLOB-объектов Azure, находятся в службе учетной записи хранения Azure в контейнере с именем sqldbauditlogs. Иерархия каталогов в контейнере выглядит примерно так: <ServerName>/<DatabaseName>/<AuditName>/<Date>/. Формат имени файла большого двоичного объекта — <CreationTime>_<FileNumberInSession>.xel, где CreationTime находится в формате UTC hh_mm_ss_ms, а FileNumberInSession — это выполняемый индекс в случае, если журналы сеансов охватывают несколько файлов большого двоичного объекта.

Например, для базы данных Database1 Server1 можно использовать следующий путь:

Server1/Database1/SqlDbAuditing_ServerAudit_NoRetention/2019-02-03/12_23_30_794_0.xel

Журналы аудита реплик только для чтения хранятся в том же контейнере. Иерархия каталогов в контейнере выглядит примерно так: <ServerName>/<DatabaseName>/<AuditName>/<Date>/RO/. Имя файла большого двоичного объекта имеет общий формат. Журналы аудита реплик только для чтения хранятся в одном и том же контейнере.

Концентратор событий

События аудита записываются в пространство имен и концентратор событий, которые были определены во время настройки аудита. Они фиксируются в теле событий Apache Avro и сохраняются с использованием форматирования JSON в кодировке UTF-8. Для чтения журналов аудита можете использовать средства Avro или похожие средства, которые поддерживают данный формат.

Служба Log Analytics

События аудита записываются в рабочую область Log Analytics, определенную во время настройки аудита, в AzureDiagnostics таблицу с категорией SQLSecurityAuditEventsи таблицей с категорией DevOpsOperationsAudit для операций служба поддержки Майкрософт. Дополнительную полезную информацию о языке поиска и командах Log Analytics см. в документации по поиску Log Analytics.

Поля журнала аудита

Имя (большой двоичный объект) Имя (концентраторы событий или Log Analytics) Description Тип большого двоичного объекта Тип концентраторов событий или Log Analytics
action_id action_id_s Идентификатор действия. varchar(4) строка
action_name action_name_s Имя действия Н/П строка
additional_information additional_information_s Любые дополнительные сведения о событии хранятся в XML-файле nvarchar(4000) строка
affected_rows affected_rows_d Количество строк, затронутых запросом bigint INT
application_name application_name_s Имя клиентского приложения NVARCHAR(128) строка
audit_schema_version audit_schema_version_d Всегда 1 INT INT
class_type class_type_s Тип доступной для аудита сущности, для которой проводится аудит varchar(2) строка
class_type_desc class_type_description_s Описание доступной для аудита сущности, для которой проводится аудит Н/П строка
client_ip client_ip_s Исходный IP-адрес клиентского приложения NVARCHAR(128) строка
connection_id Н/П Идентификатор соединения на сервере GUID Н/П
data_sensitivity_information data_sensitivity_information_s Типы сведений и метки конфиденциальности, возвращаемые запросом аудита на основе классифицированных столбцов в базе данных. Дополнительные сведения об обнаружении и классификации данных в Базе данных SQL Azure nvarchar(4000) строка
database_name database_name_s Контекст базы данных, в котором выполнялось действие sysname строка
database_principal_id database_principal_id_d Идентификатор контекста пользователя базы данных, в котором выполнено действие INT INT
database_principal_name database_principal_name_s Имя контекста пользователя базы данных, в котором выполнено действие sysname строка
duration_milliseconds duration_milliseconds_d Длительность выполнения запроса в миллисекундах bigint INT
event_time event_time_t Дата и время срабатывания действия, доступного для аудита datetime2 datetime
host_name Н/П Имя узла клиента строка Н/П
is_column_permission is_column_permission_s Флаг, обозначающий разрешение уровня столбца. 1 = true, 0 = false bit строка
Н/П is_server_level_audit_s Флаг, указывающий, что этот аудит находится на уровне сервера Н/П строка
object_ id object_id_d Идентификатор сущности, над которой выполнен аудит. К ним относятся: объекты сервера, базы данных, объекты базы данных и объекты схемы. Возвращает значение 0, если сущностью является сам сервер или если аудит не выполнен на уровне объекта INT INT
object_name object_name_s Имя сущности, для которой проводился аудит. К ним относятся: объекты сервера, базы данных, объекты базы данных и объекты схемы. Возвращает значение 0, если сущностью является сам сервер или если аудит не выполнен на уровне объекта sysname строка
obo_middle_tier_app_id obo_middle_tier_app_id_s Идентификатор приложения среднего уровня, подключенного к База данных SQL с помощью доступа OBO. varchar(120) строка
permission_bitmask permission_bitmask_s Когда применимо, отображаются предоставленные, запрещенные или отмененные разрешения. varbinary(16) строка
response_rows response_rows_d Количество строк, возвращенных в результирующем наборе bigint INT
schema_name schema_name_s Контекст схемы, в котором выполнялось действие. Возвращает значение NULL для аудитов, выполняемых вне схемы sysname строка
Н/П securable_class_type_s Защищаемый объект, сопоставляемый с class_type, для которого выполняется аудит. Н/П строка
sequence_group_id sequence_group_id_g Уникальный идентификатор varbinary GUID
sequence_number sequence_number_d Отслеживает последовательность записей в одной записи аудита, слишком большой, чтобы уместиться в буфере записи для аудитов. Обратите внимание, что База данных SQL Azure и Azure Synapse Audit хранят 4000 символов данных для полей символов в записи аудита. При наличии более 4000 символов все данные за пределами первых 4000 символов будут усечены INT INT
server_instance_name server_instance_name_s Имя экземпляра сервера, где проводился аудит sysname строка
server_principal_id server_principal_id_d Идентификатор контекста имени для входа, в котором выполнено действие INT INT
server_principal_name server_principal_name_s Текущее имя входа sysname строка
server_principal_sid server_principal_sid_s Идентификатор безопасности текущего имени для входа varbinary строка
session_id session_id_d Идентификатор сеанса, в котором произошло событие smallint INT
session_server_principal_name session_server_principal_name_s Субъект на уровне сервера для сеанса sysname строка
statement statement_s Выполненная инструкция T-SQL (при наличии) nvarchar(4000) строка
Выполнено succeeded_s Показывает, было ли успешным действие, запустившее событие. Для событий, отличных от событий входа и пакета, формируются только сообщения о том, была ли проверка разрешения выполнена успешно или окончилась неудачей, а не сообщения о самой операции. 1 = успешное завершение, 0 = неуспешное завершение bit строка
target_database_principal_id target_database_principal_id_d Участник базы данных, над которым выполняется операция GRANT/DENY/REVOKE. 0 если это не применимо INT INT
target_database_principal_name target_database_principal_name_s Целевой пользователь действия. Значение NULL, если не применимо строка строка
target_server_principal_id target_server_principal_id_d Участник на уровне сервера, над которым выполняется операция GRANT/DENY/REVOKE. Если неприменимо, возвращается значение 0 INT INT
target_server_principal_name target_server_principal_name_s Целевое имя входа действия. Значение NULL, если не применимо sysname строка
target_server_principal_sid target_server_principal_sid_s Идентификатор безопасности целевого имени входа. Значение NULL, если не применимо varbinary строка
transaction_id transaction_id_d Только SQL Server (начиная с 2016) — значение 0 для базы данных SQL Azure bigint INT
user_defined_event_id user_defined_event_id_d Пользовательский идентификатор события, переданный в качестве аргумента параметру sp_audit_write. Значение NULL для системных событий (по умолчанию) и ненулевое значение для пользовательского события. Дополнительные сведения см. в разделе sp_audit_write (Transact-SQL) smallint INT
user_defined_information @user_defined_information_s Пользовательская информация, переданная в качестве аргумента параметру sp_audit_write. Значение NULL для системных событий (по умолчанию) и ненулевое значение для пользовательского события. Дополнительные сведения см. в разделе sp_audit_write (Transact-SQL) nvarchar(4000) строка

Следующие шаги

Узнайте больше об аудите Базы данных SQL Azure.