Формат журнала аудита Базы данных 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.