Spec-Zone.ru › MySQL 5.7

6.4.5.11 Справочник по журналу аудита

В следующих разделах представлена справка по элементам MySQL Enterprise Audit:

  • Таблицы журнала аудита

  • Функции журнала аудита

  • Справочник по параметрам и переменным журнала аудита

  • Параметры и переменные журнала аудита

  • Переменные состояния журнала аудита

Для установки таблиц и функций журнала аудита используйте инструкции, приведенные в разделе 6.4.5.2 «Установка или удаление MySQL Enterprise Audit». Если эти объекты не установлены, плагин audit_log работает в режиме обратной совместимости. См. раздел 6.4.5.10 «Фильтрация журнала аудита в режиме обратной совместимости».

Таблицы журнала аудита

MySQL Enterprise Audit использует таблицы в базе данных mysql для сохранения данных о фильтрах и учетных записях пользователей. К таблицам могут получить доступ только пользователи, имеющие привилегии для этой базы данных. Таблицы используют движок хранения InnoDB (MyISAM до MySQL 5.7.21).

Если эти таблицы отсутствуют, плагин audit_log работает в режиме обратной совместимости. См. раздел 6.4.5.10 «Фильтрация журнала аудита в режиме обратной совместимости».

Таблица audit_log_filter хранит определения фильтров. Таблица имеет следующие столбцы:

  • NAME

    Название фильтра.

  • FILTER

    Определение фильтра, связанное с названием фильтра. Определения хранятся как значения JSON.

Таблица audit_log_user хранит информацию об учетных записях пользователей. Таблица имеет следующие столбцы:

  • USER

    Имя пользователя учетной записи. Для учетной записи user1@localhost, часть USER равна user1.

  • HOST

    Имя хоста учетной записи. Для учетной записи user1@localhost, часть HOST равна localhost.

  • FILTERNAME

    Название фильтра, назначенного учетной записи. Название фильтра связывает учетную запись с фильтром, определённым в таблице audit_log_filter.

Функции журнала аудита

В этом разделе описывается назначение, последовательность вызова и возвращаемое значение каждой функции журнала аудита. Сведения о ситуациях, в которых можно вызвать эти функции, см. в разделе 6.4.5.7 «Фильтрация журнала аудита».

Каждая функция журнала аудита возвращает строку, указывающую, успешно ли выполнена операция. OK указывает успех. ERROR: message указывает неудачу.

Функции журнала аудита обрабатывают строковые аргументы как двоичные строки (то есть они не различают регистр букв), а строковые возвращаемые значения — как двоичные строки.

Если функция журнала аудита вызывается из клиента mysql, двоичные строковые результаты отображаются в шестнадцатеричном формате в зависимости от значения --binary-as-hex. Дополнительную информацию об этом параметре см. в разделе 4.5.1 «mysql — Клиент командной строки MySQL».

Доступны следующие функции журнала аудита:

  • audit_log_encryption_password_get()

    Возвращает текущий пароль шифрования журнала аудита в виде двоичной строки. Пароль извлекается из хранилища ключей MySQL, которое должно быть включено, иначе произойдет ошибка. Можно использовать любой плагин хранилища ключей; инструкции см. в разделе 6.4.4 «Хранилище ключей MySQL».

    Дополнительную информацию о шифровании журнала аудита см. в разделе «Шифрование файлов журнала аудита».

    Аргументы:

    Нет.

    Возвращаемое значение:

    Строка пароля для успеха (до 766 байт) или NULL и сообщение об ошибке для неудачи.

    Пример:

    mysql> SELECT audit_log_encryption_password_get();
    +-------------------------------------+
    | audit_log_encryption_password_get() |
    +-------------------------------------+
    | secret                              |
    +-------------------------------------+
    
  • audit_log_encryption_password_set(password)

    Устанавливает пароль шифрования журнала аудита на заданное значение, сохраняет пароль в хранилище ключей MySQL. Если шифрование включено, функция выполняет операцию вращения файла журнала, переименовывая текущий файл журнала и создавая новый зашифрованный файл с указанным паролем. Хранилище ключей должно быть включено, иначе произойдет ошибка. Можно использовать любой плагин хранилища ключей; инструкции см. в разделе 6.4.4 «Хранилище ключей MySQL».

    Дополнительную информацию о шифровании журнала аудита см. в разделе «Шифрование файлов журнала аудита».

    Аргументы:

    password: Строка пароля. Максимальная длина — 766 байт.

    Возвращаемое значение:

    1 — успех, 0 — неудача.

    Пример:

    mysql> SELECT audit_log_encryption_password_set(password);
    +---------------------------------------------+
    | audit_log_encryption_password_set(password) |
    +---------------------------------------------+
    | 1                                           |
    +---------------------------------------------+
    
  • audit_log_filter_flush()

    Вызов любой из других функций фильтрации немедленно влияет на оперативную фильтрацию журнала аудита и обновляет таблицы журнала аудита. Если вместо этого вы изменяете содержимое этих таблиц напрямую с помощью таких операторов, как INSERT, UPDATE и DELETE, изменения не повлияют на фильтрацию немедленно. Чтобы применить изменения и сделать их активными, вызовите audit_log_filter_flush().

    Предупреждение

    audit_log_filter_flush() следует использовать только после прямого изменения таблиц аудита для принудительной перезагрузки всех фильтров. В противном случае эту функцию следует избегать. По сути, это упрощенная версия выгрузки и загрузки плагина audit_log с помощью UNINSTALL PLUGIN плюс INSTALL PLUGIN.

    audit_log_filter_flush() влияет на все текущие сеансы и отсоединяет их от предыдущих фильтров. Текущие сеансы больше не регистрируются, пока они не разъединятся и не возобновят соединение или не выполнят операцию изменения пользователя.

    Если эта функция завершится с ошибкой, возвращается сообщение об ошибке, и журнал аудита отключается до следующего успешного вызова audit_log_filter_flush().

    Аргументы:

    Нет.

    Возвращаемое значение:

    Строка, указывающая, успешно ли выполнена операция. OK указывает успех. ERROR: message указывает неудачу.

    Пример:

    mysql> SELECT audit_log_filter_flush();
    +--------------------------+
    | audit_log_filter_flush() |
    +--------------------------+
    | OK                       |
    +--------------------------+
    
  • audit_log_filter_remove_filter(filter_name)

    Удалить фильтр из текущего набора фильтров по имени фильтра. Если фильтра нет, это не ошибка.

    Если удаленный фильтр назначен каким-либо учетным записям пользователей, эти пользователи больше не будут отфильтрованы (они удалены из таблицы audit_log_user). Прекращение фильтрации включает все текущие сеансы для этих пользователей: они отсоединяются от фильтра и больше не регистрируются.

    Аргументы:

    • filter_name: Строка, определяющая имя фильтра.

    Возвращаемое значение:

    Строка, указывающая, успешно ли выполнена операция. OK указывает успех. ERROR: message указывает неудачу.

    Пример:

    mysql> SELECT audit_log_filter_remove_filter('SomeFilter');
    +----------------------------------------------+
    | audit_log_filter_remove_filter('SomeFilter') |
    +----------------------------------------------+
    | OK                                           |
    +----------------------------------------------+
    
  • audit_log_filter_remove_user(user_name)

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

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

    Аргументы:

    • user_name: Имя учетной записи пользователя в формате user_name@host_name или % для представления учетной записи по умолчанию.

    Возвращаемое значение:

    Строка, указывающая, успешно ли выполнена операция. OK указывает успех. ERROR: message указывает неудачу.

    Пример:

    mysql> SELECT audit_log_filter_remove_user('user1@localhost');
    +-------------------------------------------------+
    | audit_log_filter_remove_user('user1@localhost') |
    +-------------------------------------------------+
    | OK                                              |
    +-------------------------------------------------+
    
  • audit_log_filter_set_filter(filter_name, definition)

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

    Аргументы:

    • filter_name: Строка, определяющая имя фильтра.

    • definition: Значение JSON, определяющее определение фильтра.

    Возвращаемое значение:

    Строка, указывающая, успешно ли выполнена операция. OK указывает успех. ERROR: message указывает неудачу.

    Пример:

    mysql> SET @f = '{ "filter": { "log": false } }';
    mysql> SELECT audit_log_filter_set_filter('SomeFilter', @f);
    +-----------------------------------------------+
    | audit_log_filter_set_filter('SomeFilter', @f) |
    +-----------------------------------------------+
    | OK                                            |
    +-----------------------------------------------+
    
  • audit_log_filter_set_user(user_name, filter_name)

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

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

    Аргументы:

    • user_name: Имя учетной записи пользователя в формате user_name@host_name или % для представления учетной записи по умолчанию.

    • filter_name: Строка, определяющая имя фильтра.

    Возвращаемое значение:

    Строка, указывающая, успешно ли выполнена операция. OK указывает успех. ERROR: message указывает неудачу.

    Пример:

    mysql> SELECT audit_log_filter_set_user('user1@localhost', 'SomeFilter');
    +------------------------------------------------------------+
    | audit_log_filter_set_user('user1@localhost', 'SomeFilter') |
    +------------------------------------------------------------+
    | OK                                                         |
    +------------------------------------------------------------+
    
  • audit_log_read([arg])

    Читает журнал аудита и возвращает бинарную JSON строку результата. Если формат журнала аудита не JSON, возникает ошибка.

    Без аргумента или с аргументом в виде JSON хэш-значения, функция audit_log_read() считывает события из журнала аудита и возвращает JSON строку, содержащую массив событий аудита. Элементы в аргументе хэш влияют на процесс чтения, как описано ниже. Каждый элемент в возвращаемом массиве представляет собой событие, представленное в виде JSON хэша, за исключением последнего элемента, который может быть JSON null значением, указывающим на то, что следующие события для чтения недоступны.

    С аргументом в виде JSON null значения, функция audit_log_read() закрывает текущую последовательность чтения.

    Дополнительные сведения о процессе чтения журнала аудита см. в Разделе 6.4.5.6 «Чтение файлов журнала аудита».

    Аргументы:

    arg: Аргумент является необязательным. Если он опущен, функция считывает события с текущей позиции. Если присутствует, аргумент может быть JSON null значением для закрытия последовательности чтения, или JSON хэш-значением. Внутри аргумента хэш-значения, элементы являются необязательными и управляют аспектами операции чтения, такими как позиция, с которой следует начать чтение, или количество считываемых событий. Следующие элементы важны (другие элементы игнорируются):

    • timestamp, id: Позиция в журнале аудита первого события для чтения. Если позиция опущена из аргумента, чтение продолжается с текущей позиции. Элементы timestamp и id вместе образуют закладку, которая однозначно идентифицирует конкретное событие. Если аргумент audit_log_read() содержит любой из этих элементов, он должен содержать оба, чтобы полностью указать позицию, иначе произойдет ошибка.

      Чтобы получить закладку для последнего записанного события, вызовите audit_log_read_bookmark().

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

    Возвращаемое значение:

    При успешном выполнении вызов возвращает бинарную JSON строку, содержащую массив событий аудита, или JSON null значение, если оно было передано в качестве аргумента для закрытия последовательности чтения. Если вызов завершился ошибкой, возвращаемое значение — NULL и возникает ошибка.

    Пример:

    mysql> SELECT audit_log_read(audit_log_read_bookmark());
    +-----------------------------------------------------------------------+
    | audit_log_read(audit_log_read_bookmark())                             |
    +-----------------------------------------------------------------------+
    | [ {"timestamp":"2020-05-18 22:41:24","id":0,"class":"connection", ... |
    +-----------------------------------------------------------------------+
    mysql> SELECT audit_log_read('null');
    +------------------------+
    | audit_log_read('null') |
    +------------------------+
    | null                   |
    +------------------------+
    
  • audit_log_read_bookmark()

    Возвращает бинарную JSON строку, представляющую закладку для последнего записанного события журнала аудита. Если формат журнала аудита не JSON, возникает ошибка.

    Закладка — это JSON хэш с timestamp и id элементами, которые однозначно идентифицируют положение события в журнале аудита. Она подходит для передачи в функцию audit_log_read(), чтобы указать функции позицию, с которой следует начать чтение.

    Дополнительные сведения о процессе чтения журнала аудита см. в Разделе 6.4.5.6 «Чтение файлов журнала аудита».

    Аргументы:

    Нет.

    Возвращаемое значение:

    Бинарная JSON строка, содержащая закладку при успешном выполнении, или NULL и ошибка при ошибке.

    Пример:

    mysql> SELECT audit_log_read_bookmark();
    +-------------------------------------------------+
    | audit_log_read_bookmark()                       |
    +-------------------------------------------------+
    | { "timestamp": "2019-10-03 21:03:44", "id": 0 } |
    +-------------------------------------------------+
    
Справочник параметров и переменных журнала аудита

Таблица 6.34 Справочник параметров и переменных журнала аудита

Таблица 6.34 Справочник параметров и переменных журнала аудита
Имя Командная строка Файл параметров Системная переменная Переменная состояния Область действия переменной Динамическая
audit-log Да Да
audit_log_buffer_size Да Да Да Глобальная Нет
audit_log_compression Да Да Да Глобальная Нет
audit_log_connection_policy Да Да Да Глобальная Да
audit_log_current_session Да Обе Нет
Audit_log_current_size Да Глобальная Нет
audit_log_disable Да Да Да Глобальная Да
audit_log_encryption Да Да Да Глобальная Нет
Audit_log_event_max_drop_size Да Глобальная Нет
Audit_log_events Да Глобальная Нет
Audit_log_events_filtered Да Глобальная Нет
Audit_log_events_lost Да Глобальная Нет
Audit_log_events_written Да Глобальная Нет
audit_log_exclude_accounts Да Да Да Глобальная Да
audit_log_file Да Да Да Глобальная Нет
audit_log_filter_id Да Обе Нет
audit_log_flush Да Глобальная Да
audit_log_format Да Да Да Глобальная Нет
audit_log_include_accounts Да Да Да Глобальная Да
audit_log_policy Да Да Да Глобальная Нет
audit_log_read_buffer_size Да Да Да Разные Разные
audit_log_rotate_on_size Да Да Да Глобальная Да
audit_log_statement_policy Да Да Да Глобальная Да
audit_log_strategy Да Да Да Глобальная Нет
Audit_log_total_size Да Глобальная Нет
Audit_log_write_waits Да Глобальная Нет

Параметры и переменные журнала аудита

В этом разделе описаны параметры командной строки и системные переменные, которые настраивают работу MySQL Enterprise Audit. Если значения, указанные при запуске, неверны, плагин audit_log может не загрузиться должным образом, и сервер его не загрузит. В этом случае сервер также может выводить сообщения об ошибках для других настроек журнала аудита, поскольку не распознаёт их.

Для настройки активации плагина журнала аудита используйте этот параметр:

  • --audit-log[=value]

    Формат командной строки --audit-log[=value]
    Тип Перечисление
    Значение по умолчанию ON
    Допустимые значения

    ON

    OFF

    FORCE

    FORCE_PLUS_PERMANENT

    Этот параметр управляет тем, как сервер загружает плагин audit_log при запуске. Он доступен только в том случае, если плагин был предварительно зарегистрирован с помощью INSTALL PLUGIN или загружен с помощью --plugin-load или --plugin-load-add. См. Раздел 6.4.5.2, «Установка или удаление MySQL Enterprise Audit».

    Значение параметра должно быть одним из значений, доступных для параметров загрузки плагинов, как описано в Разделе 5.5.1, «Установка и удаление плагинов». Например, --audit-log=FORCE_PLUS_PERMANENT сообщает серверу о загрузке плагина и предотвращает его удаление во время работы сервера.

Если плагин журнала аудита включён, он предоставляет несколько системных переменных, которые позволяют управлять ведением журнала:

mysql> SHOW VARIABLES LIKE 'audit_log%';
+--------------------------------------+--------------+
| Variable_name                        | Value        |
+--------------------------------------+--------------+
| audit_log_buffer_size                | 1048576      |
| audit_log_compression                | NONE         |
| audit_log_connection_policy          | ALL          |
| audit_log_current_session            | OFF          |
| audit_log_disable                    | OFF          |
| audit_log_encryption                 | NONE         |
| audit_log_exclude_accounts           |              |
| audit_log_file                       | audit.log    |
| audit_log_filter_id                  | 0            |
| audit_log_flush                      | OFF          |
| audit_log_format                     | NEW          |
| audit_log_format_unix_timestamp      | OFF          |
| audit_log_include_accounts           |              |
| audit_log_policy                     | ALL          |
| audit_log_read_buffer_size           | 32768        |
| audit_log_rotate_on_size             | 0            |
| audit_log_statement_policy           | ALL          |
| audit_log_strategy                   | ASYNCHRONOUS |
+--------------------------------------+--------------+

Вы можете установить любую из этих переменных при запуске сервера, а некоторые из них — во время выполнения. Те, которые доступны только для фильтрации журнала аудита в режиме обратной совместимости, помечены как таковые.

  • audit_log_buffer_size

    Формат командной строки --audit-log-buffer-size=#
    Системная переменная audit_log_buffer_size
    Область видимости Глобальная
    Динамическая Нет
    Тип Целое число
    Значение по умолчанию 1048576
    Минимальное значение 4096
    Максимальное значение (64-битные платформы) 18446744073709547520
    Максимальное значение (32-битные платформы) 4294967295
    Единица измерения байты
    Размер блока 4096

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

  • audit_log_compression

    Формат командной строки --audit-log-compression=value
    Представлено в версии 5.7.21
    Системная переменная audit_log_compression
    Область видимости Глобальная
    Динамическая Нет
    Тип Перечисление
    Значение по умолчанию NONE
    Допустимые значения

    NONE

    GZIP

    Тип сжатия для файла журнала аудита. Допустимые значения: NONE (без сжатия; значение по умолчанию) и GZIP (сжатие GNU Zip). Для получения дополнительной информации см. Сжатие файлов журнала аудита.

  • audit_log_connection_policy

    Формат командной строки --audit-log-connection-policy=value
    Системная переменная audit_log_connection_policy
    Область видимости Глобальная
    Динамическая Да
    Тип Перечисление
    Значение по умолчанию ALL
    Допустимые значения

    ALL

    ERRORS

    NONE

    Примечание

    Эта переменная применяется только к фильтрации журнала аудита в режиме обратной совместимости (см. Раздел 6.4.5.10, «Фильтрация журнала аудита в режиме обратной совместимости»).

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

    Значение Описание
    ALL Записывать все события подключения
    ERRORS Записывать только события неудачного подключения
    NONE Не записывать события подключения
    Примечание

    При запуске сервера любое явное значение, заданное для audit_log_connection_policy, может быть переопределено, если также указано audit_log_policy, как описано в Разделе 6.4.5.5, «Настройка характеристик аудита ведения журнала».

  • audit_log_current_session

    Системная переменная audit_log_current_session
    Область видимости Глобальная, сессии
    Динамическая Нет
    Тип Логическое
    Значение по умолчанию depends on filtering policy

    Включено ли ведение журнала аудита для текущей сессии. Значение сессии этой переменной доступно только для чтения. Оно устанавливается при начале сессии на основе значений системных переменных audit_log_include_accounts и audit_log_exclude_accounts. Плагин журнала аудита использует значение сессии для определения того, следует ли аудировать события для сессии. (Существует глобальное значение, но плагин его не использует.)

  • audit_log_disable

    Формат командной строки --audit-log-disable[={OFF|ON}]
    Представлено в версии 5.7.37
    Системная переменная audit_log_disable
    Область видимости Глобальная
    Динамическая Да
    Тип Логическое
    Значение по умолчанию OFF

    Позволяет отключить ведение журнала аудита для всех подключаемых и подключенных сеансов. Для отключения ведения журнала аудита требуется привилегия SUPER. См. Раздел 6.4.5.9, «Отключение ведения журнала аудита».

  • audit_log_encryption

    Формат командной строки --audit-log-encryption=value
    Представлено в версии 5.7.21
    Системная переменная audit_log_encryption
    Область видимости Глобальная
    Динамическая Нет
    Тип Перечисление
    Значение по умолчанию NONE
    Допустимые значения

    NONE

    AES

    Тип шифрования для файла журнала аудита. Допустимые значения: NONE (без шифрования; значение по умолчанию) и AES (шифрование с помощью шифра AES-256-CBC). Для получения дополнительной информации см. Шифрование файлов журнала аудита.

  • audit_log_exclude_accounts

    Формат командной строки --audit-log-exclude-accounts=value
    Системная переменная audit_log_exclude_accounts
    Область видимости Глобальная
    Динамическая Да
    Тип Строка
    Значение по умолчанию NULL
    Примечание

    Эта переменная применяется только к фильтрации журнала аудита в режиме обратной совместимости (см. Раздел 6.4.5.10, «Фильтрация журнала аудита в режиме обратной совместимости»).

    Учетные записи, для которых события не должны регистрироваться. Значение должно быть NULL или строкой, содержащей список из одного или нескольких имен учетных записей, разделенных запятыми. Для получения дополнительной информации см. Раздел 6.4.5.7, «Фильтрация журнала аудита».

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

  • audit_log_file

    Формат командной строки --audit-log-file=file_name
    Системная переменная audit_log_file
    Область действия Глобальная
    Динамическая Нет
    Тип Имя файла
    Значение по умолчанию audit.log

    Основное имя и суффикс файла, в который плагин журнала аудита записывает события. Значение по умолчанию — audit.log, независимо от формата протоколирования. Чтобы суффикс имени соответствовал формату, укажите имя явно, выбрав другой суффикс (например, audit.xml для формата XML, audit.json для формата JSON).

    Если значение audit_log_file — имя относительного пути, плагин интерпретирует его относительно каталога данных. Если значение — полное имя пути, плагин использует его как есть. Полное имя пути может быть полезно, если требуется расположить файлы аудита на отдельной файловой системе или каталоге. По соображениям безопасности записывайте файл журнала аудита в каталог, доступный только серверу MySQL и пользователям, имеющим законное основание просматривать журнал.

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

    Начиная с MySQL 5.7.21, плагин журнала аудита использует каталог, содержащий файл журнала аудита (определяется из значения audit_log_file), в качестве расположения для поиска читаемых файлов журнала аудита. Из этих файлов журнала и текущего файла плагин строит список тех файлов, которые подлежат использованию с функциями помечания и чтения журнала аудита. См. Раздел 6.4.5.6, “Чтение файлов журнала аудита”.

  • audit_log_filter_id

    Введено 5.7.13
    Системная переменная audit_log_filter_id
    Область действия Глобальная, Сеанс
    Динамическая Нет
    Тип Целое число
    Значение по умолчанию 1
    Минимальное значение 0
    Максимальное значение 4294967295

    Значение сеанса этой переменной указывает внутренний ID фильтра аудита для текущего сеанса. Значение 0 означает, что сеансу не назначен фильтр.

  • audit_log_flush

    Системная переменная audit_log_flush
    Область действия Глобальная
    Динамическая Да
    Тип Булево
    Значение по умолчанию OFF

    Если audit_log_rotate_on_size равно 0, автоматическое вращение файла журнала аудита отключено, и вращение происходит только при ручном выполнении. В этом случае включение audit_log_flush путем установки его в 1 или ON заставляет плагин журнала аудита закрывать и повторно открывать файл журнала для его очистки. (Значение переменной остается OFF, так что вам не нужно его явно отключать перед повторным включением для выполнения другой очистки.) Дополнительная информация находится в Разделе 6.4.5.5, “Настройка характеристик ведения журнала аудита”.

  • audit_log_format

    Формат командной строки --audit-log-format=value
    Системная переменная audit_log_format
    Область действия Глобальная
    Динамическая Нет
    Тип Перечисление
    Значение по умолчанию NEW
    Допустимые значения (≥ 5.7.21)

    OLD

    NEW

    JSON

    Допустимые значения (≤ 5.7.20)

    OLD

    NEW

    Формат файла журнала аудита. Разрешенные значения — OLD (старый стиль XML), NEW (новый стиль XML; значение по умолчанию) и (начиная с MySQL 5.7.21) JSON. Подробную информацию о каждом формате см. в Разделе 6.4.5.4, “Форматы файлов журнала аудита”.

    Примечание

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

  • audit_log_format_unix_timestamp

    Формат командной строки --audit-log-format-unix-timestamp[={OFF|ON}]
    Введено 5.7.35
    Системная переменная audit_log_format_unix_timestamp
    Область действия Глобальная
    Динамическая Да
    Тип Булево
    Значение по умолчанию OFF

    Эта переменная применяется только для вывода журнала аудита в формате JSON. Если это так, включение этой переменной добавляет в каждую запись файла журнала поле time. Значение поля — целое число, представляющее значение метки времени Unix, указывающее дату и время создания события аудита.

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

  • audit_log_include_accounts

    Формат командной строки --audit-log-include-accounts=value
    Системная переменная audit_log_include_accounts
    Область действия Глобальная
    Динамическая Да
    Тип Строка
    Значение по умолчанию NULL
    Примечание

    Эта переменная применяется только к фильтрации журнала аудита в режиме обратной совместимости (см. Раздел 6.4.5.10, “Фильтрация журнала аудита в режиме обратной совместимости”).

    Учетные записи, события которых необходимо регистрировать. Значение должно быть NULL или строкой, содержащей список одного или нескольких имен учетных записей, разделенных запятыми. Дополнительную информацию см. в Разделе 6.4.5.7, “Фильтрация журнала аудита”.

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

  • audit_log_policy

    Формат командной строки --audit-log-policy=value
    Системная переменная audit_log_policy
    Область действия Глобальная
    Динамическая Нет
    Тип Перечисление
    Значение по умолчанию ALL
    Допустимые значения

    ALL

    LOGINS

    QUERIES

    NONE

    Примечание

    Эта переменная применяется только к фильтрации журнала аудита в режиме обратной совместимости (см. Раздел 6.4.5.10, «Фильтрация журнала аудита в режиме обратной совместимости»).

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

    Значение Описание
    ALL Записывать все события
    LOGINS Записывать только события входа в систему
    QUERIES Записывать только события запросов
    NONE Не записывать никаких событий (отключить поток аудита)

    audit_log_policy можно установить только при запуске сервера. Во время выполнения это — переменная только для чтения. Две другие системные переменные, audit_log_connection_policy и audit_log_statement_policy, обеспечивают более точный контроль над политикой ведения журнала и могут быть установлены как при запуске, так и во время выполнения. Если вы используете audit_log_policy при запуске вместо двух других переменных, сервер использует её значение для установки этих переменных. Дополнительную информацию о переменных политики и их взаимодействии см. в Разделе 6.4.5.5, «Настройка характеристик ведения журнала аудита».

  • audit_log_read_buffer_size

    Формат командной строки --audit-log-read-buffer-size=#
    Введено 5.7.21
    Системная переменная audit_log_read_buffer_size
    Область действия (≥ 5.7.23) Глобальная, Сессия
    Область действия (≤ 5.7.22) Глобальная
    Динамическая (≥ 5.7.23) Да
    Динамическая (≤ 5.7.22) Нет
    Тип Целое
    Значение по умолчанию (≥ 5.7.23) 32768
    Значение по умолчанию (≤ 5.7.22) 1048576
    Минимальное значение (≥ 5.7.23) 32768
    Минимальное значение (≤ 5.7.22) 1024
    Максимальное значение 4194304
    Единица измерения байты

    Размер буфера для чтения из файла журнала аудита в байтах. Функция audit_log_read() читает не более указанного количества байтов. Чтение файлов журналов поддерживается только для формата журналов JSON. Дополнительную информацию см. в Разделе 6.4.5.6, «Чтение файлов журнала аудита».

    Начиная с MySQL 5.7.23, значение по умолчанию этой переменной составляет 32 КБ и может быть установлено во время выполнения. Каждый клиент должен соответствующим образом установить своё сессионное значение audit_log_read_buffer_size для использования audit_log_read(). До MySQL 5.7.23, audit_log_read_buffer_size имеет значение по умолчанию 1 МБ, влияет на всех клиентов и может быть изменено только при запуске сервера.

  • audit_log_rotate_on_size

    Формат командной строки --audit-log-rotate-on-size=#
    Системная переменная audit_log_rotate_on_size
    Область действия Глобальная
    Динамическая Да
    Тип Целое
    Значение по умолчанию 0
    Минимальное значение 0
    Максимальное значение 18446744073709551615
    Единица измерения байты
    Размер блока 4096

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

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

    Если вы установите audit_log_rotate_on_size на значение, которое не кратно 4096, оно усекается до ближайшего кратного. В частности, установка значения меньше 4096 устанавливает его в 0, и ротация не происходит, кроме как вручную.

    Дополнительную информацию о ротации файлов журнала аудита см. в Разделе «Управление пространством файлов журнала аудита».

  • audit_log_statement_policy

    Формат командной строки --audit-log-statement-policy=value
    Системная переменная audit_log_statement_policy
    Область действия Глобальная
    Динамическая Да
    Тип Перечисление
    Значение по умолчанию ALL
    Допустимые значения

    ALL

    ERRORS

    NONE

    Примечание

    Эта переменная применяется только к фильтрации журнала аудита в режиме обратной совместимости (см. Раздел 6.4.5.10, «Фильтрация журнала аудита в режиме обратной совместимости»).

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

    Значение Описание
    ALL Записывать все события выполнения запросов
    ERRORS Записывать только события неудачного выполнения запросов
    NONE Не записывать события выполнения запросов
    Примечание

    При запуске сервера любое явное значение, заданное для audit_log_statement_policy, может быть переопределено, если также указано audit_log_policy, как описано в Разделе 6.4.5.5, «Настройка характеристик ведения журнала аудита».

  • audit_log_strategy

    Формат командной строки --audit-log-strategy=value
    Системная переменная audit_log_strategy
    Область действия Глобальная
    Динамическая Нет
    Тип Перечисление
    Значение по умолчанию ASYNCHRONOUS
    Допустимые значения

    ASYNCHRONOUS

    PERFORMANCE

    SEMISYNCHRONOUS

    SYNCHRONOUS

    Метод ведения журнала, используемый плагином журнала аудита. Разрешены следующие стратегии:

    • ASYNCHRONOUS: Асинхронное ведение журнала. Ожидание освобождения места в буфере вывода.

    • PERFORMANCE: Асинхронное ведение журнала. Отбрасывание запросов, для которых недостаточно места в буфере вывода.

    • SEMISYNCHRONOUS: Синхронное ведение журнала. Разрешение кеширования операционной системой.

    • SYNCHRONOUS: Синхронное ведение журнала. Вызов sync() после каждого запроса.

Переменные состояния журнала аудита

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

  • Audit_log_current_size

    Размер текущего файла журнала аудита. Значение увеличивается при записи события в журнал и сбрасывается до 0 при перемотке журнала.

  • Audit_log_event_max_drop_size

    Размер самого большого потерянного события в режиме логирования производительности. Описание режимов логирования см. в разделе 6.4.5.5 «Настройка характеристик логирования аудита».

  • Audit_log_events

    Количество событий, обработанных плагином журнала аудита, вне зависимости от того, были ли они записаны в журнал на основе политики фильтрации (см. раздел 6.4.5.5 «Настройка характеристик логирования аудита»).

  • Audit_log_events_filtered

    Количество событий, обработанных плагином журнала аудита, которые были отфильтрованы (не записаны в журнал) на основе политики фильтрации (см. раздел 6.4.5.5 «Настройка характеристик логирования аудита»).

  • Audit_log_events_lost

    Количество потерянных событий в режиме логирования производительности, потому что событие было больше, чем доступное место в буфере журнала аудита. Это значение может быть полезно для оценки того, как установить audit_log_buffer_size для настройки размера буфера для режима производительности. Описание режимов логирования см. в разделе 6.4.5.5 «Настройка характеристик логирования аудита».

  • Audit_log_events_written

    Количество событий, записанных в журнал аудита.

  • Audit_log_total_size

    Общий размер событий, записанных во все файлы журнала аудита. В отличие от Audit_log_current_size, значение Audit_log_total_size увеличивается даже при перемотке журнала.

  • Audit_log_write_waits

    Количество раз, когда событию приходилось ждать места в буфере журнала аудита в асинхронном режиме логирования. Описание режимов логирования см. в разделе 6.4.5.5 «Настройка характеристик логирования аудита».

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

Spec-Zone.ru

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