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(+---------------------------------------------+ | audit_log_encryption_password_set(password);password) | +---------------------------------------------+ | 1 | +---------------------------------------------+ -
Вызов любой из других функций фильтрации немедленно влияет на оперативную фильтрацию журнала аудита и обновляет таблицы журнала аудита. Если вместо этого вы изменяете содержимое этих таблиц напрямую с помощью таких операторов, как
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 | +------------------------------------------------------------+
-
Читает журнал аудита и возвращает бинарную
JSONстроку результата. Если формат журнала аудита неJSON, возникает ошибка.Без аргумента или с аргументом в виде
JSONхэш-значения, функцияaudit_log_read()считывает события из журнала аудита и возвращаетJSONстроку, содержащую массив событий аудита. Элементы в аргументе хэш влияют на процесс чтения, как описано ниже. Каждый элемент в возвращаемом массиве представляет собой событие, представленное в видеJSONхэша, за исключением последнего элемента, который может бытьJSONnullзначением, указывающим на то, что следующие события для чтения недоступны.С аргументом в виде
JSONnullзначения, функцияaudit_log_read()закрывает текущую последовательность чтения.Дополнительные сведения о процессе чтения журнала аудита см. в Разделе 6.4.5.6 «Чтение файлов журнала аудита».
Аргументы:
arg: Аргумент является необязательным. Если он опущен, функция считывает события с текущей позиции. Если присутствует, аргумент может бытьJSONnullзначением для закрытия последовательности чтения, илиJSONхэш-значением. Внутри аргумента хэш-значения, элементы являются необязательными и управляют аспектами операции чтения, такими как позиция, с которой следует начать чтение, или количество считываемых событий. Следующие элементы важны (другие элементы игнорируются):-
timestamp,id: Позиция в журнале аудита первого события для чтения. Если позиция опущена из аргумента, чтение продолжается с текущей позиции. Элементыtimestampиidвместе образуют закладку, которая однозначно идентифицирует конкретное событие. Если аргументaudit_log_read()содержит любой из этих элементов, он должен содержать оба, чтобы полностью указать позицию, иначе произойдет ошибка.Чтобы получить закладку для последнего записанного события, вызовите
audit_log_read_bookmark(). max_array_length: Максимальное количество событий для чтения из журнала. Если этот элемент опущен, по умолчанию чтение продолжается до конца журнала или пока буфер чтения не заполнится, в зависимости от того, что произойдет раньше.
Возвращаемое значение:
При успешном выполнении вызов возвращает бинарную
JSONстроку, содержащую массив событий аудита, илиJSONnullзначение, если оно было передано в качестве аргумента для закрытия последовательности чтения. Если вызов завершился ошибкой, возвращаемое значение —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 | +------------------------+ -
-
Возвращает бинарную
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 Справочник параметров и переменных журнала аудита
| Имя | Командная строка | Файл параметров | Системная переменная | Переменная состояния | Область действия переменной | Динамическая |
|---|---|---|---|---|---|---|
| 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]Тип Перечисление Значение по умолчанию ONДопустимые значения ONOFFFORCEFORCE_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Область видимости Глобальная Динамическая Нет Тип Целое число Значение по умолчанию 1048576Минимальное значение 4096Максимальное значение (64-битные платформы) 18446744073709547520Максимальное значение (32-битные платформы) 4294967295Единица измерения байты Размер блока 4096Когда плагин журнала аудита асинхронно записывает события в журнал, он использует буфер для хранения содержимого событий перед записью. Эта переменная управляет размером этого буфера в байтах. Сервер корректирует значение до кратного 4096. Плагин использует один буфер, который он выделяет при инициализации и удаляет при завершении работы. Плагин выделяет этот буфер только в том случае, если ведение журнала является асинхронным.
-
Формат командной строки --audit-log-compression=valueПредставлено в версии 5.7.21 Системная переменная audit_log_compressionОбласть видимости Глобальная Динамическая Нет Тип Перечисление Значение по умолчанию NONEДопустимые значения NONEGZIPТип сжатия для файла журнала аудита. Допустимые значения:
NONE(без сжатия; значение по умолчанию) иGZIP(сжатие GNU Zip). Для получения дополнительной информации см. Сжатие файлов журнала аудита. -
Формат командной строки --audit-log-connection-policy=valueСистемная переменная audit_log_connection_policyОбласть видимости Глобальная Динамическая Да Тип Перечисление Значение по умолчанию ALLДопустимые значения ALLERRORSNONEПримечаниеЭта переменная применяется только к фильтрации журнала аудита в режиме обратной совместимости (см. Раздел 6.4.5.10, «Фильтрация журнала аудита в режиме обратной совместимости»).
Политика, управляющая тем, как плагин журнала аудита записывает события подключения в свой файл журнала. В следующей таблице показаны допустимые значения.
Значение Описание ALLЗаписывать все события подключения ERRORSЗаписывать только события неудачного подключения NONEНе записывать события подключения ПримечаниеПри запуске сервера любое явное значение, заданное для
audit_log_connection_policy, может быть переопределено, если также указаноaudit_log_policy, как описано в Разделе 6.4.5.5, «Настройка характеристик аудита ведения журнала». -
Системная переменная audit_log_current_sessionОбласть видимости Глобальная, сессии Динамическая Нет Тип Логическое Значение по умолчанию depends on filtering policyВключено ли ведение журнала аудита для текущей сессии. Значение сессии этой переменной доступно только для чтения. Оно устанавливается при начале сессии на основе значений системных переменных
audit_log_include_accountsиaudit_log_exclude_accounts. Плагин журнала аудита использует значение сессии для определения того, следует ли аудировать события для сессии. (Существует глобальное значение, но плагин его не использует.) -
Формат командной строки --audit-log-disable[={OFF|ON}]Представлено в версии 5.7.37 Системная переменная audit_log_disableОбласть видимости Глобальная Динамическая Да Тип Логическое Значение по умолчанию OFFПозволяет отключить ведение журнала аудита для всех подключаемых и подключенных сеансов. Для отключения ведения журнала аудита требуется привилегия
SUPER. См. Раздел 6.4.5.9, «Отключение ведения журнала аудита». -
Формат командной строки --audit-log-encryption=valueПредставлено в версии 5.7.21 Системная переменная audit_log_encryptionОбласть видимости Глобальная Динамическая Нет Тип Перечисление Значение по умолчанию NONEДопустимые значения NONEAESТип шифрования для файла журнала аудита. Допустимые значения:
NONE(без шифрования; значение по умолчанию) иAES(шифрование с помощью шифра AES-256-CBC). Для получения дополнительной информации см. Шифрование файлов журнала аудита. -
Формат командной строки --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=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, “Чтение файлов журнала аудита”. -
Введено 5.7.13 Системная переменная audit_log_filter_idОбласть действия Глобальная, Сеанс Динамическая Нет Тип Целое число Значение по умолчанию 1Минимальное значение 0Максимальное значение 4294967295Значение сеанса этой переменной указывает внутренний ID фильтра аудита для текущего сеанса. Значение 0 означает, что сеансу не назначен фильтр.
-
Системная переменная audit_log_flushОбласть действия Глобальная Динамическая Да Тип Булево Значение по умолчанию OFFЕсли
audit_log_rotate_on_sizeравно 0, автоматическое вращение файла журнала аудита отключено, и вращение происходит только при ручном выполнении. В этом случае включениеaudit_log_flushпутем установки его в 1 илиONзаставляет плагин журнала аудита закрывать и повторно открывать файл журнала для его очистки. (Значение переменной остаетсяOFF, так что вам не нужно его явно отключать перед повторным включением для выполнения другой очистки.) Дополнительная информация находится в Разделе 6.4.5.5, “Настройка характеристик ведения журнала аудита”. -
Формат командной строки --audit-log-format=valueСистемная переменная audit_log_formatОбласть действия Глобальная Динамическая Нет Тип Перечисление Значение по умолчанию NEWДопустимые значения (≥ 5.7.21) OLDNEWJSONДопустимые значения (≤ 5.7.20) OLDNEWФормат файла журнала аудита. Разрешенные значения —
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=valueСистемная переменная audit_log_include_accountsОбласть действия Глобальная Динамическая Да Тип Строка Значение по умолчанию NULLПримечаниеЭта переменная применяется только к фильтрации журнала аудита в режиме обратной совместимости (см. Раздел 6.4.5.10, “Фильтрация журнала аудита в режиме обратной совместимости”).
Учетные записи, события которых необходимо регистрировать. Значение должно быть
NULLили строкой, содержащей список одного или нескольких имен учетных записей, разделенных запятыми. Дополнительную информацию см. в Разделе 6.4.5.7, “Фильтрация журнала аудита”.Изменения в
audit_log_include_accountsзатрагивают только подключения, созданные после изменения, а не существующие.
-
Формат командной строки --audit-log-policy=valueСистемная переменная audit_log_policyОбласть действия Глобальная Динамическая Нет Тип Перечисление Значение по умолчанию ALLДопустимые значения ALLLOGINSQUERIESNONEПримечаниеЭта переменная применяется только к фильтрации журнала аудита в режиме обратной совместимости (см. Раздел 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=#Введено 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Область действия Глобальная Динамическая Да Тип Целое Значение по умолчанию 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=valueСистемная переменная audit_log_statement_policyОбласть действия Глобальная Динамическая Да Тип Перечисление Значение по умолчанию ALLДопустимые значения ALLERRORSNONEПримечаниеЭта переменная применяется только к фильтрации журнала аудита в режиме обратной совместимости (см. Раздел 6.4.5.10, «Фильтрация журнала аудита в режиме обратной совместимости»).
Политика, определяющая, как плагин журнала аудита записывает события выполнения запросов в свой файл журнала. В следующей таблице показаны допустимые значения.
Значение Описание ALLЗаписывать все события выполнения запросов ERRORSЗаписывать только события неудачного выполнения запросов NONEНе записывать события выполнения запросов ПримечаниеПри запуске сервера любое явное значение, заданное для
audit_log_statement_policy, может быть переопределено, если также указаноaudit_log_policy, как описано в Разделе 6.4.5.5, «Настройка характеристик ведения журнала аудита». -
Формат командной строки --audit-log-strategy=valueСистемная переменная audit_log_strategyОбласть действия Глобальная Динамическая Нет Тип Перечисление Значение по умолчанию ASYNCHRONOUSДопустимые значения ASYNCHRONOUSPERFORMANCESEMISYNCHRONOUSSYNCHRONOUSМетод ведения журнала, используемый плагином журнала аудита. Разрешены следующие стратегии:
ASYNCHRONOUS: Асинхронное ведение журнала. Ожидание освобождения места в буфере вывода.PERFORMANCE: Асинхронное ведение журнала. Отбрасывание запросов, для которых недостаточно места в буфере вывода.SEMISYNCHRONOUS: Синхронное ведение журнала. Разрешение кеширования операционной системой.SYNCHRONOUS: Синхронное ведение журнала. Вызовsync()после каждого запроса.
Переменные состояния журнала аудита
Если плагин журнала аудита включён, он предоставляет несколько переменных состояния, которые предоставляют операционную информацию. Эти переменные доступны для фильтрации аудита в режиме обратной совместимости и фильтрации аудита в режиме JSON.
-
Размер текущего файла журнала аудита. Значение увеличивается при записи события в журнал и сбрасывается до 0 при перемотке журнала.
-
Размер самого большого потерянного события в режиме логирования производительности. Описание режимов логирования см. в разделе 6.4.5.5 «Настройка характеристик логирования аудита».
-
Количество событий, обработанных плагином журнала аудита, вне зависимости от того, были ли они записаны в журнал на основе политики фильтрации (см. раздел 6.4.5.5 «Настройка характеристик логирования аудита»).
-
Количество событий, обработанных плагином журнала аудита, которые были отфильтрованы (не записаны в журнал) на основе политики фильтрации (см. раздел 6.4.5.5 «Настройка характеристик логирования аудита»).
-
Количество потерянных событий в режиме логирования производительности, потому что событие было больше, чем доступное место в буфере журнала аудита. Это значение может быть полезно для оценки того, как установить
audit_log_buffer_sizeдля настройки размера буфера для режима производительности. Описание режимов логирования см. в разделе 6.4.5.5 «Настройка характеристик логирования аудита». -
Количество событий, записанных в журнал аудита.
-
Общий размер событий, записанных во все файлы журнала аудита. В отличие от
Audit_log_current_size, значениеAudit_log_total_sizeувеличивается даже при перемотке журнала. -
Количество раз, когда событию приходилось ждать места в буфере журнала аудита в асинхронном режиме логирования. Описание режимов логирования см. в разделе 6.4.5.5 «Настройка характеристик логирования аудита».
© 2025 Oracle
Licensed under the GPLv2 License.