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

6.3.7.4. Windows Native Authentication Plugin

Отметить

Плагин аутентификации Windows является коммерческим расширением. Чтобы узнать больше о коммерческих продуктах (MySQL Enterprise Edition), см. http://www.mysql.com/products/.

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

Пакеты данных обмена клиента и сервера в обмене аутентификационными данными. В результате этого обмена сервер создает объект контекста защиты, который представляет идентификационные данные клиента в Windows ОС. Эти идентификационные данные включают имя клиентской учетной записи. Плагин аутентификации Windows использует идентификационные данные клиента, чтобы проверить, является ли это сделанным отчетом или элементом группы. По умолчанию согласование использует Kerberos, чтобы аутентифицировать, затем NTLM, если Kerberos недоступен.

Плагин аутентификации Windows обеспечивает эти возможности:

Следующая таблица показывает имена файлов библиотеки и плагин. Расположение файла должно быть каталогом, названным plugin_dir системная переменная. Для информации об установке см. Раздел 6.3.7.4.1, "Устанавливая Windows Authentication Plugin".

Таблица 6.12. Windows Authentication Plugin MySQL

Серверное имя плагина authentication_windows
Клиентское имя плагина authentication_windows_client
Имя объектного файла библиотеки authentication_windows.dll

Файл библиотеки включает только серверный плагин. Клиентский плагин создается в libmysqlclient клиентская библиотека.

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

Плагин аутентификации Windows должен работать над Windows 2000 Professional и. Это требует MySQL Server 5.6.10 или более новый.

Для получения общей информации о сменной аутентификации в MySQL, см. Раздел 6.3.7, "Сменная Аутентификация". Для информации о пользователе прокси см. Раздел 6.3.8, "Пользователи Прокси".

6.3.7.4.1. Установка Windows Authentication Plugin

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

Чтобы включить плагину, запустите сервер с --plugin-load опция. Например, вставьте эти строки Ваш my.ini файл:

[mysqld]plugin-load=authentication_windows.dll

Используйте сменное имя authentication_windows в IDENTIFIED WITH пункт CREATE USER или GRANT операторы для учетных записей MySQL, которые должны аутентифицироваться с этим плагином.

Чтобы проверить сменную установку, исследуйте INFORMATION_SCHEMA.PLUGINS таблица или использование SHOW PLUGINS оператор. См. Раздел 5.1.8.2, "Получая информацию о Плагине Сервера".

6.3.7.4.2. Используя Windows Authentication Plugin

Плагин аутентификации Windows поддерживает использование учетных записей MySQL так, что пользователи, которые вошли в систему к Windows, может соединиться с сервером MySQL, не имея необходимость определять дополнительный пароль. Предполагается, что серверный плагин включается и что клиентские программы являются достаточно недавними, чтобы включать клиентский плагин, созданный в libmysqlclient. Как только DBA включил серверному плагину и установил учетные записи, чтобы использовать его, клиенты могут соединить использование тех учетных записей без другой установки, требуемой на их части.

Обратиться к плагину аутентификации Windows в IDENTIFIED WITH пункт a CREATE USER или GRANT оператор, используйте имя authentication_windows. Предположите что пользователи Windows Rafal и Tasha должен быть разрешен соединиться с MySQL, так же как любыми пользователями в Administrators или Power Users группа. Чтобы установить это, создайте названную учетную запись MySQL sql_admin это использует плагин Windows для аутентификации:

CREATE USER sql_admin  IDENTIFIED WITH authentication_windows  AS 'Rafal, Tasha, Administrators, "Power Users"';

Сменное имя authentication_windows. Строка после AS ключевое слово является строкой аутентификации. Это определяет что названные пользователи Windows Rafal или Tasha разрешаются аутентифицировать к серверу как пользователь MySQL sql_admin, как любые пользователи Windows в Administrators или Power Users группа. Последнее название группы содержит пространство, таким образом, оно должно быть заключено в кавычки с символами двойной кавычки.

После того, как Вы создаете sql_admin учетная запись, пользователь, который вошел в систему к Windows, может попытаться соединиться с сервером, используя ту учетную запись:

C:\> mysql --user=sql_admin

Никакой пароль не требуется здесь. authentication_windows плагин использует API безопасности Windows, чтобы проверить, какой пользователь Windows соединяется. Если того пользователя называют Rafal или Tasha, или находится в Administrators или Power Users группа, сервер предоставляет доступ, и клиент аутентифицируется как sql_admin и имеет любые полномочия, предоставляются sql_admin учетная запись. Иначе, сервер лишает доступа.

Строковый синтаксис аутентификации для плагина аутентификации Windows следует за этими правилами:

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

  • Каждый пользователь, отображающийся, связывает пользователя Windows или название группы с именем пользователя MySQL:

    win_user_or_group_name=sql_user_namewin_user_or_group_name

    Для последнего синтаксиса, без sql_user_name данное значение, неявное значение является пользователем MySQL, создаваемым CREATE USER оператор. Таким образом эти операторы эквивалентны:

    CREATE USER sql_admin  IDENTIFIED WITH authentication_windows  AS 'Rafal, Tasha, Administrators, "Power Users"';CREATE USER sql_admin  IDENTIFIED WITH authentication_windows  AS 'Rafal=sql_admin, Tasha=sql_admin, Administrators=sql_admin,      "Power Users"=sql_admin';
  • Каждая наклонная черта влево ('\') в значении должен быть удвоен, потому что наклонная черта влево является символом ESC в строках MySQL.

  • Продвижение и конечные пробелы не в двойных кавычках игнорируется.

  • Неупомянутый win_user_or_group_name и sql_user_name значения могут содержать что-либо кроме знака "равно", запятой, или пространства.

  • Если a win_user_or_group_name и или sql_user_name значение заключается в кавычки с двойными кавычками, все между кавычками - часть значения. Это необходимо, например, если имя содержит пробелы. Все символы в пределах двойных кавычек являются законными кроме двойной кавычки и наклонной черты влево. Чтобы включать любой символ, выйдите из этого с наклонной чертой влево.

  • win_user_or_group_name значения используют стандартный синтаксис для принципалов Windows, или локальных или в домене. Примеры (отмечают удвоение наклонных черт влево):

    domain\\user.\\userdomain\\group.\\groupBUILTIN\\WellKnownGroup

Когда вызвано сервером, чтобы аутентифицировать клиент, плагин сканирует строку аутентификации слева направо для пользователя или группового соответствия пользователю Windows. Если есть соответствие, плагин возвращает соответствие sql_user_name к серверу MySQL. Если там не идет ни в какое сравнение, сбои аутентификации.

Соответствие имени пользователя берет предпочтение по соответствию названия группы. Предположите что названный пользователь Windows win_user элемент win_group и строка аутентификации похожа на это:

'win_group = sql_user1, win_user = sql_user2'

Когда win_user соединяется с сервером MySQL, есть соответствие оба к win_group и к win_user. Плагин аутентифицирует пользователя как sql_user2 потому что более специфичное пользовательское соответствие имеет приоритет по групповому соответствию, даже при том, что группа перечисляется сначала в строке аутентификации.

Аутентификация Windows всегда работает на соединения от того же самого компьютера, на котором работает сервер. Для перекрестных компьютерных соединений оба компьютера должны быть зарегистрированы в Windows Active Directory. Если они находятся в том же самом домене Windows, является ненужным определить доменное имя. Также возможно разрешить соединения от различного домена, как в этом примере:

CREATE USER sql_accounting  IDENTIFIED WITH authentication_windows  AS 'SomeDomain\\Accounting';

Здесь SomeDomain имя другого домена. Символ наклонной черты влево удваивается, потому что это - символ ESC MySQL в пределах строк.

MySQL поддерживает понятие о пользователях прокси, посредством чего клиент может соединить и аутентифицировать к серверу MySQL, используя одну учетную запись, но в то время как соединено имеет полномочия другой учетной записи (см. Раздел 6.3.8, "Пользователи Прокси"). Предположите, что Вы хотите, чтобы пользователи Windows соединили использование единственного имени пользователя, но были отображены основанные на их пользователе Windows и названиях группы на определенные учетные записи MySQL следующим образом:

  • local_user и MyDomain\domain_user локальный и пользователи Windows домена должен отобразиться на local_wlad Учетная запись MySQL.

  • Пользователи в MyDomain\Developers группа домена должна отобразиться на local_dev Учетная запись MySQL.

  • Локальные машинные администраторы должны отобразиться на local_admin Учетная запись MySQL.

Чтобы установить это, создайте прокси, учитывают пользователей Windows, чтобы соединиться с, и сконфигурировать эту учетную запись так, чтобы пользователи и группы отобразились на соответствующие учетные записи MySQL (local_wlad, local_dev, local_admin). Кроме того, допустите, что MySQL считает полномочия соответствующими операциям, которые они должны выполнить. Следующее использование инструкций win_proxy как учетная запись прокси, и local_wlad, local_dev, и local_admin как проксированные учетные записи.

  1. Создайте учетную запись MySQL прокси:

    CREATE USER win_proxy  IDENTIFIED WITH  authentication_windows  AS 'local_user = local_wlad,      MyDomain\\domain_user = local_wlad,      MyDomain\\Developers = local_dev,      BUILTIN\\Administrators = local_admin';
  2. Для того, чтобы проксировать, чтобы работать, проксированные учетные записи должны существовать, так создать их:

    CREATE USER local_wlad IDENTIFIED BY 'wlad_pass';CREATE USER local_dev IDENTIFIED BY 'dev_pass';CREATE USER local_admin IDENTIFIED BY  'admin_pass';

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

    Следует также выйти GRANT операторы (не показанный), которые предоставляют каждой проксированной учетной записи полномочия, в которых она нуждается.

  3. Учетная запись прокси должна иметь PROXY полномочие для каждой из проксированных учетных записей:

    GRANT PROXY ON local_wlad TO win_proxy;GRANT PROXY ON local_dev TO win_proxy;GRANT PROXY ON local_admin TO win_proxy;

Теперь пользователи Windows local_user и MyDomain\domain_user может соединиться с сервером MySQL как win_proxy и когда аутентифицирующийся имейте полномочия отчета, сделанного в строке аутентификации — в этом случае, local_wlad. Пользователь в MyDomain\Developers группа, которая соединяется как win_proxy имеет полномочия local_dev учетная запись. Пользователь в BUILTIN\Administrators у группы есть полномочия local_admin учетная запись.

Чтобы сконфигурировать аутентификацию так, чтобы все пользователи Windows, у которых нет их собственной учетной записи MySQL, прошли через учетную запись прокси, займите место, значение по умолчанию проксируют пользователя (''@'') для win_proxy в предыдущих инструкциях. Для получения информации о значении по умолчанию проксируйте пользователя, видьте Раздел 6.3.8, "Пользователи Прокси".

Чтобы использовать плагин аутентификации Windows со строками подключения Соединителя/Сети в Соединении/Сети 6.4.4 и выше, см. Раздел 22.2.5.5, "Используя Windows Native Authentication Plugin".

Дополнительное управление плагином аутентификации Windows обеспечивается authentication_windows_use_principal_name и authentication_windows_log_level системные переменные. См. Раздел 5.1.4, "Системные Переменные Сервера".