Spec-Zone.ru › MySQL 5.7

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

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

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

Примечание

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

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

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

Таблица 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.
https://docs.oracle.com/cd/E17952_01/mysql-5.7-en/test-pluggable-authentication.html

Spec-Zone.ru

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