8.4.5.2 Установка или удаление MySQL Enterprise Audit
В этом разделе описывается, как установить или удалить MySQL Enterprise Audit, который реализован с помощью плагина журнала аудита и связанных элементов, описанных в разделе 8.4.5.1 «Элементы MySQL Enterprise Audit». Общие сведения об установке плагинов см. в разделе 7.6.1 «Установка и удаление плагинов».
При обновлении установки MySQL обновление плагинов не происходит автоматически, и некоторые загружаемые функции плагина необходимо загрузить вручную (см. Установка загружаемых функций). В качестве альтернативы можно переустановить плагин после обновления MySQL, чтобы загрузить новые функции.
Перед выполнением инструкций прочтите весь этот раздел. Части процедуры отличаются в зависимости от вашей среды.
Если установлен, плагин audit_log вызывает незначительные накладные расходы даже при отключении. Чтобы избежать этих накладных расходов, не устанавливайте MySQL Enterprise Audit, если вы не планируете его использовать.
Для использования плагином сервером, библиотечный файл плагина должен находиться в каталоге плагинов MySQL (каталог, указанный переменной среды plugin_dir). При необходимости конфигурируйте расположение каталога плагинов, задав значение plugin_dir при запуске сервера.
Чтобы установить MySQL Enterprise Audit, найдите каталог share вашей установки MySQL и выберите соответствующий скрипт для вашей платформы. Доступные скрипты отличаются именем файла, используемым для ссылки на скрипт:
audit_log_filter_win_install.sqlaudit_log_filter_linux_install.sql
Запустите скрипт следующим образом. В данном примере используется скрипт установки для Linux и базу данных mysql по умолчанию. Произведите соответствующую замену для вашей системы.
$> mysql -u root -p -D mysql < audit_log_filter_linux_install.sql
Enter password: (enter root password here)
При выполнении скрипта установки можно указать пользовательскую базу данных для хранения таблиц фильтров JSON. Сначала создайте базу данных; ее имя не должно превышать 64 символов. Например:
mysql> CREATE DATABASE IF NOT EXISTS database-name;
Затем запустите скрипт, используя альтернативное имя базы данных.
$> mysql -u root -p -D database-name < audit_log_filter_linux_install.sql
Enter password: (enter root password here)
В некоторых версиях MySQL были внесены изменения в структуру таблиц MySQL Enterprise Audit. Чтобы убедиться, что ваши таблицы обновлены для обновлений из более ранних версий MySQL, выполните процедуру обновления MySQL, убедившись, что используется опция принудительного обновления (см. Глава 3, Обновление MySQL). Если вы предпочитаете запускать операторы обновления только для таблиц MySQL Enterprise Audit, см. обсуждение ниже.
При новых установках MySQL столбцы USER и HOST в таблице audit_log_user, используемой MySQL Enterprise Audit, имеют определения, которые лучше соответствуют определениям столбцов User и Host в системной таблице mysql.user. Для обновлений установок, в которых MySQL Enterprise Audit уже установлен, рекомендуется изменить определения таблиц следующим образом:
ALTER TABLE mysql.audit_log_user
DROP FOREIGN KEY audit_log_user_ibfk_1;
ALTER TABLE mysql.audit_log_filter
CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_as_ci;
ALTER TABLE mysql.audit_log_user
CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_as_ci;
ALTER TABLE mysql.audit_log_user
MODIFY COLUMN USER VARCHAR(32);
ALTER TABLE mysql.audit_log_user
ADD FOREIGN KEY (FILTERNAME) REFERENCES mysql.audit_log_filter(NAME);
Чтобы использовать MySQL Enterprise Audit в контексте репликации источника/копии, Group Replication или InnoDB Cluster, необходимо подготовить узлы репликации до запуска скрипта установки на узле источника. Это необходимо, потому что оператор INSTALL PLUGIN в скрипте не реплицируется.
На каждом узле репликации извлеките оператор
INSTALL PLUGINиз скрипта установки и выполните его вручную.На узле источника запустите скрипт установки, как описано ранее.
Для проверки установки плагина, просмотрите таблицу Information Schema PLUGINS или используйте оператор SHOW PLUGINS (см. раздел 7.6.2 «Получение информации о плагинах сервера»). Например:
mysql> SELECT PLUGIN_NAME, PLUGIN_STATUS
FROM INFORMATION_SCHEMA.PLUGINS
WHERE PLUGIN_NAME LIKE 'audit%';
+-------------+---------------+
| PLUGIN_NAME | PLUGIN_STATUS |
+-------------+---------------+
| audit_log | ACTIVE |
+-------------+---------------+
Если плагин не инициализируется, проверьте журнал ошибок сервера на наличие диагностических сообщений.
После установки MySQL Enterprise Audit, вы можете использовать опцию --audit-log для последующих запусков сервера, чтобы управлять активацией плагина audit_log. Например, чтобы предотвратить удаление плагина во время выполнения, используйте эту опцию:
[mysqld]
audit-log=FORCE_PLUS_PERMANENT
Если необходимо предотвратить запуск сервера без плагина аудита, используйте --audit-log со значением FORCE или FORCE_PLUS_PERMANENT, чтобы принудительно прервать запуск сервера, если плагин не инициализируется успешно.
По умолчанию фильтрация журнала аудита на основе правил не регистрирует события аудита для любых пользователей. Это отличается от поведения старого журнала аудита, который регистрирует все события аудита для всех пользователей (см. раздел 8.4.5.10 «Фильтрация журналов аудита в режиме legacy»). Если вам нужно получить поведение регистрации всех событий с фильтрацией на основе правил, создайте простой фильтр для включения регистрации и назначьте его по умолчанию пользователю:
SELECT audit_log_filter_set_filter('log_all', '{ "filter": { "log": true } }');
SELECT audit_log_filter_set_user('%', 'log_all');
Фильтр, назначенный пользователю %, используется для подключений от любого пользователя, которому не назначен явный фильтр (что изначально верно для всех пользователей).
При установке MySQL Enterprise Audit таким образом, он остается установленным до удаления. Чтобы удалить его, запустите скрипт удаления, расположенный в каталоге share вашей установки MySQL. В данном примере используется база данных mysql по умолчанию. Произведите соответствующую замену для вашей системы.
$> mysql -u root -p -D mysql < audit_log_filter_uninstall.sql
Enter password: (enter root password here)
© 2025 Oracle
Licensed under the GPLv2 License.