Spec-Zone.ru › MySQL 8.4

8.4.5.10 Фильтрация журналов аудита в режиме обратной совместимости

Примечание

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

Фильтрация журналов аудита в режиме обратной совместимости устарела.

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

  • Фильтрация событий обратной совместимости по учетной записи

  • Фильтрация событий обратной совместимости по статусу

Фильтрация событий обратной совместимости по учетной записи

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

  • audit_log_include_accounts: Учетные записи, которые следует включать в журналы аудита. Если эта переменная установлена, аудиту подлежат только эти учетные записи.

  • audit_log_exclude_accounts: Учетные записи, которые следует исключить из журналов аудита. Если эта переменная установлена, аудиту подлежат все учетные записи, кроме указанных.

Значение любой переменной может быть NULL или строкой, содержащей одно или несколько имен учетных записей, разделенных запятыми, каждое в формате user_name@host_name. По умолчанию обе переменные равны NULL, в этом случае фильтрация по учетным записям не выполняется, и аудит проводится для всех учетных записей.

Изменения в audit_log_include_accounts или audit_log_exclude_accounts влияют только на подключения, созданные после внесения изменений, а не на существующие подключения.

Пример: Чтобы включить ведение журнала аудита только для локальных учетных записей user1 и user2, установите системную переменную audit_log_include_accounts следующим образом:

SET GLOBAL audit_log_include_accounts = 'user1@localhost,user2@localhost';

Одновременно не может быть установлено не-NULL значение для audit_log_include_accounts или audit_log_exclude_accounts:

  • Если вы устанавливаете audit_log_include_accounts, сервер устанавливает audit_log_exclude_accounts в значение NULL.

  • Если вы пытаетесь установить audit_log_exclude_accounts, возникает ошибка, если audit_log_include_accounts не равно NULL. В этом случае необходимо сначала очистить audit_log_include_accounts, установив его в значение NULL.

-- This sets audit_log_exclude_accounts to NULL
SET GLOBAL audit_log_include_accounts = value;

-- This fails because audit_log_include_accounts is not NULL
SET GLOBAL audit_log_exclude_accounts = value;

-- To set audit_log_exclude_accounts, first set
-- audit_log_include_accounts to NULL
SET GLOBAL audit_log_include_accounts = NULL;
SET GLOBAL audit_log_exclude_accounts = value;

При проверке значения любой переменной обратите внимание, что SHOW VARIABLES отображает NULL как пустую строку. Для отображения NULL как NULL используйте SELECT:

mysql> SHOW VARIABLES LIKE 'audit_log_include_accounts';
+----------------------------+-------+
| Variable_name              | Value |
+----------------------------+-------+
| audit_log_include_accounts |       |
+----------------------------+-------+
mysql> SELECT @@audit_log_include_accounts;
+------------------------------+
| @@audit_log_include_accounts |
+------------------------------+
| NULL                         |
+------------------------------+

Если имя пользователя или имя хоста содержит запятую, пробел или другой специальный символ, его необходимо заключить в одинарные кавычки. Если само значение переменной заключено в одинарные кавычки, каждый внутренний одинарный кавычки следует удвоить или экранировать обратной косой чертой. Следующие утверждения каждый включают в ведение журнала аудита локальную учетную запись root и эквивалентны, несмотря на различия в стиле кавычек:

SET GLOBAL audit_log_include_accounts = 'root@localhost';
SET GLOBAL audit_log_include_accounts = '''root''@''localhost''';
SET GLOBAL audit_log_include_accounts = '\'root\'@\'localhost\'';
SET GLOBAL audit_log_include_accounts = "'root'@'localhost'";

Последнее утверждение не работает, если включен режим SQL ANSI_QUOTES, так как в этом режиме двойные кавычки обозначают кавычки идентификатора, а не кавычки строки.

Фильтрация событий обратной совместимости по статусу

Для фильтрации аудируемых событий по статусу установите следующие системные переменные при запуске или в процессе работы сервера. Эти устаревшие переменные применяются только для фильтрации журналов аудита в режиме обратной совместимости. Для фильтрации журналов аудита в формате JSON применяются другие переменные статуса; см. Параметры и переменные журналов аудита.

  • audit_log_connection_policy: Политика ведения журнала для событий подключения

  • audit_log_statement_policy: Политика ведения журнала для событий выполнения запросов

Каждая переменная принимает значение ALL (записывать все связанные события; это значение по умолчанию), ERRORS (записывать только неудачные события) или NONE (не записывать события). Например, чтобы записывать все события выполнения запросов, но только неудачные события подключения, используйте следующие настройки:

SET GLOBAL audit_log_statement_policy = ALL;
SET GLOBAL audit_log_connection_policy = ERRORS;

Доступна еще одна переменная политики, audit_log_policy, но она не предоставляет такого же контроля, как audit_log_connection_policy и audit_log_statement_policy. Ее можно устанавливать только при запуске сервера.

Примечание

Устаревшая системная переменная режима обратной совместимости audit_log_policy.

Во время работы она является переменной только для чтения. Она принимает значение ALL (записывать все события; это значение по умолчанию), LOGINS (записывать события подключения), QUERIES (записывать события выполнения запросов) или NONE (не записывать события). В любом из этих случаев плагин журнала аудита записывает все выбранные события без различия успешности или неудачи. Использование audit_log_policy при запуске работает следующим образом:

  • Если вы не устанавливаете audit_log_policy или устанавливаете его в значение по умолчанию ALL, применяются все явные настройки audit_log_connection_policy или audit_log_statement_policy, как указано. Если не указано, они по умолчанию равны ALL.

  • Если вы устанавливаете audit_log_policy в значение, отличное от ALL, это значение имеет приоритет и используется для установки audit_log_connection_policy и audit_log_statement_policy, как показано в следующей таблице. Если вы также устанавливаете одну из этих переменных в значение, отличное от значения по умолчанию ALL, сервер записывает сообщение в журнал ошибок, чтобы указать, что их значения переопределяются.

    Значение audit_log_policy при запуске Полученное значение audit_log_connection_policy Полученное значение audit_log_statement_policy
    LOGINS ALL NONE
    QUERIES NONE ALL
    NONE NONE NONE

© 2025 Oracle
Licensed under the GPLv2 License.
https://docs.oracle.com/cd/E17952_01/mysql-8.4-en/audit-log-legacy-filtering.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API