Журналы аудита SQL в хранилище данных Fabric

Область применения:✅ конечная точка аналитики SQL и хранилище в Microsoft Fabric

Аудит в хранилище данных Fabric обеспечивает расширенные возможности безопасности и соответствия требованиям путем отслеживания и записи событий базы данных.

Используя журналы аудита SQL, вы можете отслеживать активность базы данных, выявлять потенциальные угрозы безопасности и выполнять требования соответствия, ведя аудит ключевых действий, таких как:

  • Попытки проверки подлинности и изменения управления доступом
  • Операции доступа к данным и изменения
  • Изменения схемы и административные действия
  • Изменения разрешений и конфигурации безопасности

Это важно

По умолчанию журналы аудита SQL выключены. Пользователи с разрешениями для запросов аудита должны включить функцию записи журналов.

Чтобы приступить к работе, ознакомьтесь с инструкциями по настройке журналов аудита SQL в хранилище данных Fabric.

Хранение

Журналы аудита SQL шифруются в состоянии покоя и хранятся в OneLake.

Для хранилища данных Fabric журналы аудита записываются в файлы, которые хранятся в папке Audit хранилища в OneLake.

Пользователи со следующими ролями могут получить доступ к папке аудита:

  • Администраторы рабочей области
  • Члены рабочей области
  • Участники рабочей области
  • Просмотрщики рабочих областей с разрешением "Чтение всех"

Эти пользователи могут:

  • Обзор папки "Аудит"
  • Просмотрите файлы аудита, созданные при помощи .XEL SQL-аудита
  • Скопируйте файлы для автономного анализа
  • Откройте файлы с такими инструментами, как SQL Server Management Studio (SSMS)

Журналы аудита также можно запрашивать с помощью T-SQL с помощью sys.fn_get_audit_file_v2.

Инструкции см. в разделе Настройка журналов аудита SQL вхранилища данных Fabric.

Подсказка

Настройка журналов аудита в хранилище данных Microsoft Fabric может увеличить затраты на хранение в зависимости от групп действий и событий, записанных. Включите только необходимые события, чтобы избежать ненужных затрат на хранение.

Производительность

Функция журналов аудита SQL оптимизирована с учётом доступности и производительности проверяемой базы данных. В периоды очень высокой активности или высокой сетевой нагрузки функция аудита может позволить транзакциям продолжаться без записи всех событий, помеченных для аудита.

Разрешения

У пользователей должно быть разрешение на запросы аудита (аудит) для настройки и запроса журналов аудита.

  • По умолчанию администраторы пространства имеют разрешение на запросы аудита для всех элементов в рабочей области.
  • Администраторы могут предоставлять права на запросы Audit по товарам другим пользователям через диалоговое окно обмена.

Администраторы рабочего пространства могут предоставлять права на запросы аудита к элементу, используя опцию общего меню в портале Fabric. Чтобы проверить, есть ли у пользователя разрешения на запросы аудита , проверьте настройки управления разрешениями .

  1. В элементе "Склад" выберите кнопку Общий доступ.

    Или на портале Fabric в вашей рабочей области. Выберите контекстное ... меню для элемента хранилища, выберите пункт "Управление разрешениями".

  2. В панели доступа для людей Grant предоставляйте разрешения пользователю.

    Снимок экрана, показывающий, где на панели «Общий доступ» выбрать разрешение на запросы аудита (Audit).

Запросы к журналам аудита с использованием прав T-SQL

Дайте пользователям разрешение VIEW DATABASE SECURITY AUDIT , чтобы они могли запрашивать журналы аудита с помощью разрешения T-SQL, даже если у них нет административных ролей в рабочем пространстве.

При предоставлении следующего разрешения пользователь может запрашивать журналы аудита, используя функцию:sys.fn_get_audit_file_v2

GRANT VIEW DATABASE SECURITY AUDIT TO [user];

Подсказка

Это VIEW DATABASE SECURITY AUDIT разрешение даёт только возможность задавать запросы к журналам аудита. Он не предоставляет доступ к файлам и не разрешает изменять конфигурацию аудита.

Группы действий и действия аудита на уровне базы данных

Чтобы сделать конфигурацию журнала аудита более доступной, портал Fabric использует понятные имена, чтобы помочь администраторам без SQL и другим пользователям легко понять захваченные события хранилища данных Fabric.

Структура сопоставляет эти понятные имена с базовыми группами действий аудита SQL. Используйте следующую таблицу для справки.

Дружественное имя Имя группы действий Описание
Объект был доступен DATABASE_OBJECT_ACCESS_GROUP Регистрирует доступ к объектам базы данных, таким как типы сообщений, сборки или контракты.
Объект был изменен DATABASE_OBJECT_CHANGE_GROUP Регистрирует операции CREATE, ALTERили DROP с объектами базы данных.
Изменен владелец объекта DATABASE_OBJECT_OWNERSHIP_CHANGE_GROUP Регистрирует изменения владения объектами базы данных.
Изменено разрешение объекта DATABASE_OBJECT_PERMISSION_CHANGE_GROUP Журналирует действия GRANT, REVOKEили DENY на объектах базы данных.
Пользователь был изменен DATABASE_PRINCIPAL_CHANGE_GROUP Журналы создания, изменения или удаления субъектов базы данных (пользователи, роли).
Пользователь был выдан за другого DATABASE_PRINCIPAL_IMPERSONATION_GROUP Регистрирует операции имперсонации (например, EXECUTE AS).
Участник роли был изменен DATABASE_ROLE_MEMBER_CHANGE_GROUP Выполняется журналирование добавления или удаления учётных записей к роли базы данных.
Пользователь не удалось войти в систему FAILED_DATABASE_AUTHENTICATION_GROUP Фиксирует неудачные попытки проверки подлинности в базе данных.
Было использовано разрешение схемы SCHEMA_OBJECT_ACCESS_GROUP Регистрирует доступ к объектам схемы.
Изменена схема SCHEMA_OBJECT_CHANGE_GROUP Осуществляется логирование операций CREATE, ALTERили DROP по схемам.
Проверено разрешение объекта схемы SCHEMA_OBJECT_OWNERSHIP_CHANGE_GROUP Записывает изменения в отношении владения объектами схемы.
Изменено разрешение объекта схемы SCHEMA_OBJECT_PERMISSION_CHANGE_GROUP Журналы действий GRANT, REVOKEили DENY на объектах схемы.
Пакет был завершен BATCH_COMPLETED_GROUP Это событие возникает каждый раз, когда завершается выполнение любой операции текстового пакета, хранимой процедуры или управления транзакциями.
Партия была запущена BATCH_STARTED_GROUP Это событие возникает каждый раз, когда запускается выполнение любого пакетного текстового задания, хранимой процедуры или операции управления транзакциями.
Аудит был изменен AUDIT_CHANGE_GROUP Это событие возникает при каждом создании, изменении или удалении любого аудита.
Пользователь вышел из системы DATABASE_LOGOUT_GROUP Это событие возникает, когда пользователь базы данных выходит из базы данных.
Вход пользователя SUCCESSFUL_DATABASE_AUTHENTICATION_GROUP Указывает, что пользователь успешно вошел в базу данных.

Действия аудита на уровне базы данных

Помимо групп действий можно настроить отдельные действия аудита для регистрации определенных событий базы данных:

Действие аудита Описание
SELECT Регистрирует выражения SELECT для указанного объекта.
INSERT Регистрирует операции INSERT на указанном объекте.
UPDATE Регистрирует операции UPDATE на указанном объекте.
DELETE Регистрирует операции DELETE на указанном объекте.
EXECUTE Регистрирует выполнение хранимых процедур или функций.
RECEIVE Журнализирует RECEIVE операцию в очередях Service Broker.
REFERENCES Ведёт журналы проверок разрешений, связанных с ограничениями внешнего ключа.

Уменьшите шум аудита с помощью предикатной фильтрации

Чтобы отфильтровать, какие события захватываются, используйте опциональный фильтр выражения предиката .

Используйте фильтрацию предикатов для снижения шума от ожидаемой, повторяющейся активности, такой как идентификации автоматизации, принципы сервиса или запланированные задачи, не отключая группы действий, необходимые вашей организации для соблюдения требований или расследования.

  • Только когда событие совпадает с настроенным предикатом, для этого действия генерируется событие SQL-аудита для этого действия.
    • Фильтрация происходит до написания события, поэтому исключённые события позже недоступны для ретроспективного анализа. Рассматривайте исключения предиката как осознанное решение по политике аудита и периодически пересматривайте установленный предикат по мере изменения владения, разрешений и профилей рисков.
  • Фильтрация предиката оценивает только те события, которые уже настроены для захвата с помощью включенной группы действий аудита или действия.
    • Если базовая группа действий не включена, предикатом не генерируется событие, которое предикат должен оценить, и фильтр не действует. Например, чтобы отфильтровать SELECT операторы с помощью предиката на statement поле, сначала необходимо включить группу действий Batch Was Completed (BATCH_COMPLETED_GROUP) ().

Вы можете настроить выражение предиката, используя портал Fabric или REST API. Для шагов см. Конфигурировать выражение предиката.

Синтаксис выражения предиката

Выражения предикатов используют тот же синтаксис, что и <predicate_expression> клауза в CREATE SERVER AUDIT (Transact-SQL), без WHERE ключевого слова:

<predicate_expression> ::=
    { [ NOT ] <predicate_factor>
    [ { AND | OR } [ NOT ] { <predicate_factor> } ] [ ,... n ] }

<predicate_factor> ::=
    event_field_name { = | <> | != | > | >= | < | <= | LIKE }
    { number | 'string' }
  • event_field_nameсоответствует столбцу, возвращаемому sys.fn_get_audit_file (Transact-SQL). Вы можете использовать все задокументированные столбцы, кроме file_name, audit_file_offset, и event_time.
  • action_id и class_type являются строками, но их можно сравнивать только с числовыми значениями в предикате.
  • Сравнения строк не выполняют неявное преобразование типов.
  • Максимальная длина выражения составляет 3 000 символов.
  • Пустая строка означает, что предикат не применяется.

Например, чтобы исключить активность, сгенерируемую известным принципом сервиса или идентичностью автоматизации, отфильтруйте по server_principal_name. Чтобы исключить повторяющиеся SELECT утверждения, отфильтруйте по statement полю: NOT statement LIKE 'SELECT %'.

Ограничения

Это важно

Журналы аудита хранятся в элементе 'Хранилище' в OneLake. Если удалить хранилище, вы также удалите связанные файлы журнала аудита и больше не сможете получить к ним доступ.
Чтобы сохранить журналы аудита в целях соответствия требованиям или исследования, скопируйте .XEL файлы в другое место хранения перед удалением хранилища.

Ограничения конечных точек аналитики SQL

Следующие ограничения применяются при аудите конечных точек аналитики SQL:

  • Операции DML не записываются. Аудит не записывает такие операции, как INSERT, UPDATEDELETEи MERGE поскольку обработка данных для таблиц Lakehouse происходит через среду выполнения Lakehouse, а не через конечную точку аналитики SQL.
  • Прямой доступ к папке аудита в настоящее время не поддерживается. Пользователи не могут просматривать или скачивать базовые .XEL файлы аудита из папки аудита Lakehouse.

Вы всё ещё можете запрашивать события аудита для конечных точек аналитики SQL, используя функцию sys.fn_get_audit_file_v2T-SQL .

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