Spec-Zone.ru › MySQL 5.7

6.4.5.2 Установка или удаление MySQL Enterprise Audit

В этом разделе описано, как установить или удалить MySQL Enterprise Audit, который реализован с помощью плагина журнала аудита и связанных элементов, описанных в разделе 6.4.5.1 «Элементы MySQL Enterprise Audit». Для общей информации об установке плагинов см. раздел 5.5.1 «Установка и удаление плагинов».

Важно

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

Примечание

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

Для использования плагином сервером, файл библиотеки плагина должен находиться в каталоге плагинов MySQL (каталог, указанный переменной системы plugin_dir). При необходимости, настройте расположение каталога плагинов, установив значение plugin_dir при запуске сервера.

Примечание

Данные инструкции относятся к MySQL 5.7.13 и более поздним версиям.

Также, до MySQL 5.7.13 MySQL Enterprise Audit состоит только из плагина audit_log и не включает другие элементы, описанные в разделе 6.4.5.1 «Элементы MySQL Enterprise Audit». Начиная с MySQL 5.7.13, если плагин audit_log уже установлен из версии MySQL до 5.7.13, удалите его, используя следующее утверждение, и перезапустите сервер перед установкой текущей версии:

UNINSTALL PLUGIN audit_log;

Чтобы установить MySQL Enterprise Audit, найдите каталог share в вашей установке MySQL и выберите сценарий, соответствующий вашей платформе. Доступные сценарии отличаются суффиксом, используемым для ссылки на файл библиотеки плагина:

  • audit_log_filter_win_install.sql: Выберите этот сценарий для систем Windows, которые используют .dll в качестве суффикса имени файла.

  • audit_log_filter_linux_install.sql: Выберите этот сценарий для Linux и подобных систем, которые используют .so в качестве суффикса имени файла.

Запустите сценарий следующим образом. В данном примере используется сценарий установки для Linux. Произведите соответствующую замену для вашей системы.

$> mysql -u root -p < audit_log_filter_linux_install.sql
Enter password: (enter root password here)
Примечание

В некоторых версиях MySQL были внесены изменения в структуру таблиц MySQL Enterprise Audit. Чтобы убедиться, что ваши таблицы обновлены для обновлений с более ранних версий MySQL 5.7, запустите mysql_upgrade --force (который также выполняет все необходимые обновления). Если вы предпочитаете запускать операторы обновления только для таблиц MySQL Enterprise Audit, см. последующее обсуждение.

Начиная с MySQL 5.7.23, для новых установок MySQL столбцы USER и HOST в таблице audit_log_user, используемой MySQL Enterprise Audit, имеют определения, которые лучше соответствуют определениям столбцов User и Host в системной таблице mysql.user. Для обновлений до 5.7.23 или выше для установки, где MySQL Enterprise Audit уже установлен, рекомендуется изменить определения таблиц следующим образом:

ALTER TABLE mysql.audit_log_user
  DROP FOREIGN KEY audit_log_user_ibfk_1;
ALTER TABLE mysql.audit_log_filter
  ENGINE=InnoDB;
ALTER TABLE mysql.audit_log_filter
  CONVERT TO CHARACTER SET utf8 COLLATE utf8_bin;
ALTER TABLE mysql.audit_log_user
  ENGINE=InnoDB;
ALTER TABLE mysql.audit_log_user
  CONVERT TO CHARACTER SET utf8 COLLATE utf8_bin;
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 5.7.21, для новой установки MySQL Enterprise Audit, используется InnoDB вместо MyISAM для таблиц журнала аудита. Для обновлений до 5.7.21 или выше для установки, где MySQL Enterprise Audit уже установлен, рекомендуется изменить таблицы журнала аудита, чтобы использовать InnoDB:

ALTER TABLE mysql.audit_log_user ENGINE=InnoDB;
ALTER TABLE mysql.audit_log_filter ENGINE=InnoDB;
Примечание

Чтобы использовать MySQL Enterprise Audit в контексте репликации источника/реплики, Group Replication или InnoDB Cluster, вы должны использовать MySQL 5.7.21 или выше и убедиться, что таблицы журнала аудита используют InnoDB, как описано выше. Затем вы должны подготовить узлы реплики перед запуском сценария установки на узле источника. Это необходимо, потому что оператор INSTALL PLUGIN в сценарии не реплицируется.

  1. На каждом узле реплики извлеките оператор INSTALL PLUGIN из сценария установки и выполните его вручную.

  2. На узле источника запустите сценарий установки, как описано ранее.

Для проверки установки плагина, проверьте таблицу Информационной схемы PLUGINS или используйте оператор SHOW PLUGINS (см. раздел 5.5.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, чтобы принудительно заблокировать запуск сервера, если плагин не инициализируется успешно.

Важно

По умолчанию, фильтрация журнала аудита на основе правил не регистрирует какие-либо аудируемые события для любых пользователей. Это отличается от поведения устаревшего журнала аудита (до MySQL 5.7.13), который регистрирует все аудируемые события для всех пользователей (см. раздел 6.4.5.10 «Фильтрация устаревшего журнала аудита»). Если вы хотите получить поведение регистрации всего с помощью фильтрации на основе правил, создайте простой фильтр для включения регистрации и назначьте его по умолчанию аккаунту:

SELECT audit_log_filter_set_filter('log_all', '{ "filter": { "log": true } }');
SELECT audit_log_filter_set_user('%', 'log_all');

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

После установки, как описано выше, MySQL Enterprise Audit остаётся установленным до тех пор, пока не будет удалён. Чтобы удалить его, выполните следующие операторы:

DROP TABLE IF EXISTS mysql.audit_log_user;
DROP TABLE IF EXISTS mysql.audit_log_filter;
UNINSTALL PLUGIN audit_log;
DROP FUNCTION audit_log_filter_set_filter;
DROP FUNCTION audit_log_filter_remove_filter;
DROP FUNCTION audit_log_filter_set_user;
DROP FUNCTION audit_log_filter_remove_user;
DROP FUNCTION audit_log_filter_flush;
DROP FUNCTION audit_log_encryption_password_get;
DROP FUNCTION audit_log_encryption_password_set;
DROP FUNCTION audit_log_read;
DROP FUNCTION audit_log_read_bookmark;

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

Spec-Zone.ru

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