6.4.1.12 Тестовая подключаемая аутентификация
MySQL включает тестовый плагин, который проверяет учетные данные пользователя и записывает результат (успех или неудачу) в системный журнал ошибок сервера. Это загружаемый плагин (а не встроенный), и его необходимо установить перед использованием.
Исходный код тестового плагина отделён от исходного кода сервера, в отличие от встроенных плагинов, поэтому он может служить относительно простым примером, демонстрирующим, как написать загружаемый плагин аутентификации.
Данный плагин предназначен для целей тестирования и разработки и не должен использоваться в производственных средах или на серверах, доступных из публичных сетей.
В следующей таблице показаны имена файлов плагина и библиотеки. Суффикс имени файла может отличаться на вашей системе. Файл должен находиться в каталоге, указанном системной переменной plugin_dir.
Таблица 6.19 Имена плагина и библиотеки для тестовой аутентификации
| Плагин или файл | Имя плагина или файла |
|---|---|
| Плагин на стороне сервера | test_plugin_server |
| Плагин на стороне клиента | auth_test_plugin |
| Файл библиотеки | auth_test_plugin.so |
В следующих разделах приведена информация об установке и использовании тестовой подключаемой аутентификации:
Для получения общей информации о подключаемой аутентификации в MySQL см. Раздел 6.2.13, «Подключаемая аутентификация».
Установка тестовой подключаемой аутентификации
В этом разделе описывается, как установить плагин тестовой аутентификации на стороне сервера. Для общей информации об установке плагинов см. Раздел 5.5.1, «Установка и удаление плагинов».
Для использования на сервере, файл библиотеки плагина должен находиться в каталоге плагинов MySQL (каталог, указанный системной переменной plugin_dir). При необходимости, настройте расположение каталога плагинов, задав значение plugin_dir при запуске сервера.
Для загрузки плагина при запуске сервера, используйте опцию --plugin-load-add для указания имени файла библиотеки, содержащей плагин. С этим методом загрузки плагина, опция должна указываться каждый раз при запуске сервера. Например, поместите эти строки в файл сервера my.cnf, скорректировав .so суффикс для вашей платформы по необходимости:
[mysqld]
plugin-load-add=auth_test_plugin.so
После изменения my.cnf перезапустите сервер, чтобы новые настройки вступили в силу.
В качестве альтернативы, для загрузки плагина во время выполнения, используйте следующую команду, скорректировав .so суффикс для вашей платформы по необходимости:
INSTALL PLUGIN test_plugin_server SONAME 'auth_test_plugin.so';
INSTALL PLUGIN загружает плагин немедленно и регистрирует его в таблице системных данных mysql.plugins, чтобы сервер загружал его при каждом последующем запуске без необходимости в опции --plugin-load-add.
Для проверки установки плагина, просмотрите таблицу схемы информации PLUGINS или используйте оператор SHOW PLUGINS (см. Раздел 5.5.2, «Получение информации о плагинах сервера»). Например:
mysql> SELECT PLUGIN_NAME, PLUGIN_STATUS
FROM INFORMATION_SCHEMA.PLUGINS
WHERE PLUGIN_NAME LIKE '%test_plugin%';
+--------------------+---------------+
| PLUGIN_NAME | PLUGIN_STATUS |
+--------------------+---------------+
| test_plugin_server | ACTIVE |
+--------------------+---------------+
Если плагин не удалось инициализировать, проверьте журнал ошибок сервера на наличие диагностических сообщений.
Чтобы связать учетные записи MySQL с тестовым плагином, см. Использование тестовой подключаемой аутентификации.
Удаление тестовой подключаемой аутентификации
Способ удаления тестового плагина аутентификации зависит от способа его установки:
Если вы установили плагин при запуске сервера, используя опцию
--plugin-load-add, перезапустите сервер без этой опции.-
Если вы установили плагин во время выполнения, используя оператор
INSTALL PLUGIN, он останется установленным после перезагрузки сервера. Для удаления используйтеUNINSTALL PLUGIN:UNINSTALL PLUGIN test_plugin_server;
Использование тестовой подключаемой аутентификации
Для использования тестового плагина аутентификации, создайте учетную запись и укажите имя плагина в части IDENTIFIED WITH:
CREATE USER 'testuser'@'localhost'
IDENTIFIED WITH test_plugin_server
BY 'testpassword';
Затем укажите опции --user и --password для этой учетной записи при подключении к серверу. Например:
$> mysql --user=testuser --password
Enter password: testpassword
Плагин извлекает пароль, полученный от клиента, и сравнивает его со значением в столбце authentication_string строки учетной записи в таблице mysql.user системы. Если значения совпадают, плагин возвращает значение authentication_string в качестве нового эффективного ID пользователя.
Вы можете проверить журнал ошибок сервера на сообщение, указывающее, была ли аутентификация успешной (обратите внимание, что пароль передается как «“пользователь“):
[Note] Plugin test_plugin_server reported:
'successfully authenticated user testpassword'
© 2025 Oracle
Licensed under the GPLv2 License.