Spec-Zone .ru
спецификации, руководства, описания, API

6.3.7. Сменная Аутентификация

6.3.7.1. Собственные Плагины Аутентификации
6.3.7.2. SHA 256 Плагинов Аутентификации
6.3.7.3. Клиентский Плагин Аутентификации Открытого текста
6.3.7.4. Плагин Аутентификации Равноправных учетных данных Сокета
6.3.7.5. Тестовый Плагин Аутентификации

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

В MySQL 5.7 сервер аутентифицирует клиенты, использующие плагины, следующим образом:

Сменная аутентификация включает двум важным возможностям:

Несколько плагинов аутентификации доступны в MySQL. Следующие разделы обеспечивают детали об определенных плагинах.

Отметить

Для получения информации о текущих ограничениях на использование сменной аутентификации, включая который поддержка соединителей, который плагины, см. Раздел D.9, "Ограничения на Сменную Аутентификацию".

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

Если Вам интересно в письменной форме Ваши собственные плагины аутентификации, см. Раздел 22.2.4.9, "Пишущий Плагины Аутентификации".

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

Остаток от этого раздела обеспечивает общие инструкции для установки и использования плагинов аутентификации. Инструкции используют плагин аутентификации в качестве примера, включенный в дистрибутивы MySQL (см. Раздел 6.3.7.5, "Тестовый Плагин Аутентификации"). Процедура подобна для других плагинов аутентификации; замените соответствующими сменными и именами файлов.

У плагина аутентификации в качестве примера есть эти характеристики:

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

  1. Удостоверьтесь, что сменная библиотека устанавливается на сервере и хостах клиента.

  2. Установите серверный тестовый плагин при запуске сервера или во времени выполнения:

    • Чтобы установить плагин при запуске, используйте --plugin-load опция. С этим загружающим плагин методом опция должна быть дана каждый раз, когда Вы запускаете сервер. Например, используйте эти строки в a my.cnf файл опции:

      [mysqld]plugin-load=test_plugin_server=auth_test_plugin.so
    • Чтобы установить плагин во времени выполнения, используйте INSTALL PLUGIN оператор:

      mysql> INSTALL PLUGIN
                                      test_plugin_server SONAME 'auth_test_plugin.so';

      Это устанавливает плагин постоянно и потребность быть сделанным только однажды.

      Аутентификация ПЭМ, если не сделанная через пользователей прокси или группы, требует, чтобы у учетной записи MySQL было то же самое имя пользователя как учетная запись Unix. Поскольку имена пользователей MySQL ограничиваются 16 символами (см. Раздел 6.2.2, "Полномочие Систем Грант Тэбльз"), это ограничивает аутентификацию непрокси ПЭМ учетными записями Unix с именами самое большее 16 символов.

  3. Проверьте, что плагин устанавливается. Например, использовать SHOW PLUGINS:

    mysql> SHOW PLUGINS\G...*************************** 21. row ***************************   Name: test_plugin_server Status: ACTIVE   Type: AUTHENTICATIONLibrary: auth_test_plugin.soLicense: GPL

    Для других способов проверить плагин, см. Раздел 5.1.8.2, "Получая информацию о Плагине Сервера".

  4. Чтобы определить, что пользователь MySQL должен аутентифицироваться, используя плагин, назовите его в IDENTIFIED WITH пункт CREATE USER оператор, который создает пользователя:

    CREATE USER 'testuser'@'localhost' IDENTIFIED WITH test_plugin_server;
  5. Соединитесь с сервером, используя клиентскую программу. Тестовый плагин аутентифицирует тот же самый путь как собственная аутентификация MySQL, так что обеспечьте обычное --user и --password опции, которые Вы обычно используете, чтобы соединиться с сервером. Например:

    shell> mysql --user=your_name --password=your_pass

    Для соединений testuser, сервер видит, что учетная запись должна аутентифицироваться, используя серверный названный плагин test_plugin_server и связывается с клиентской программой, какой клиентский плагин это должно использовать — в этом случае, auth_test_plugin.

    В случае, что учетная запись использует метод аутентификации, который является значением по умолчанию и для сервера и для клиентской программы, сервер не должен связаться с клиентом, какого плагина использовать, и цикл обработки в клиент-серверном согласовании можно избежать. В настоящий момент это - истина для учетных записей, которые используют собственную аутентификацию MySQL (mysql_native_password).

    --default-auth=plugin_name опция может быть определена на mysql командной строке, чтобы сделать явным, какой клиентский плагин программа может ожидать использовать, хотя сервер переопределит это, если учетная запись пользователя потребует различного плагина.

    Если mysql не находит плагин, определите a --plugin-dir=dir_name опция, чтобы указать, где плагин располагается.

Отметить

Если Вы запускаете сервер с --skip-grant-tables опция, плагины аутентификации не используются, даже если загруженный, потому что сервер не выполняет аутентификации клиента и разрешает любому клиенту соединяться. Поскольку это небезопасно, Вы могли бы хотеть использовать --skip-grant-tables в соединении с --skip-networking препятствовать тому, чтобы удаленные клиенты соединились.