Spec-Zone.ru › MySQL 8.4

8.4.1.12 Тестируемая подключаемая аутентификация

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

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

Примечание

Данный плагин предназначен для тестирования и разработки и не предназначен для использования в производственных средах или на серверах, доступных через публичные сети.

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

Таблица 8.27 Имена плагина и библиотеки для тестирования аутентификации

Таблица 8.27 Имена плагина и библиотеки для тестирования аутентификации
Плагин или файл Имя плагина или файла
Плагин на стороне сервера test_plugin_server
Плагин на стороне клиента auth_test_plugin
Файл библиотеки auth_test_plugin.so

В следующих разделах представлена информация об установке и использовании, специфичная для тестирования подключаемой аутентификации:

  • Установка тестируемой подключаемой аутентификации

  • Удаление тестируемой подключаемой аутентификации

  • Использование тестируемой подключаемой аутентификации

Для получения общей информации о подключаемой аутентификации в MySQL см. Раздел 8.2.17, «Подключаемая аутентификация».

Установка тестируемой подключаемой аутентификации

Этот раздел описывает, как установить плагин тестирования аутентификации на стороне сервера. Для получения общей информации об установке плагинов см. Раздел 7.6.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.

Для проверки установки плагина, изучите таблицу Information Schema PLUGINS или используйте оператор SHOW PLUGINS (см. Раздел 7.6.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';

Плагин тестирования аутентификации также требует создания прокси-пользователя следующим образом:

CREATE USER testpassword@localhost;
GRANT PROXY ON testpassword@localhost TO testuser@localhost;

Затем для подключения к серверу укажите параметры --user и --password для этой учетной записи. Например:

$> mysql --user=testuser --password
Enter password: testpassword

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

Вы можете найти сообщение в журнале ошибок сервера, указывающее, удалась ли аутентификация (обратите внимание, что пароль сообщается как “пользователь”):

[Note] Plugin test_plugin_server reported:
'successfully authenticated user testpassword'

© 2025 Oracle
Licensed under the GPLv2 License.
https://docs.oracle.com/cd/E17952_01/mysql-8.4-en/test-pluggable-authentication.html

Spec-Zone.ru

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