Spec-Zone .ru
спецификации, руководства, описания, API
|
Плагин аутентификации 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 обеспечивает эти возможности:
Внешняя аутентификация: плагин позволяет MySQL Server принять соединения от пользователей, определенных вне таблиц предоставления MySQL.
Проксируйте пользовательскую поддержку: плагин может возвратить MySQL имя
пользователя, отличающееся от клиентского пользователя. Это означает, что плагин может возвратить
пользователя MySQL, который определяет полномочия, которые должен иметь внешний аутентифицируемый
Windows пользователь. Например, пользователя Windows называют joe
может
соединить и иметь полномочия названного пользователя MySQL developer
.
Следующая таблица показывает имена файлов библиотеки и плагин. Расположение файла должно быть каталогом,
названным 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, "Пользователи Прокси".
Плагин аутентификации 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, "Получая информацию о Плагине Сервера".
Плагин аутентификации 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_name
win_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
как проксированные учетные записи.
Создайте учетную запись 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';
Для того, чтобы проксировать, чтобы работать, проксированные учетные записи должны существовать, так создать их:
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
операторы (не показанный), которые предоставляют каждой
проксированной учетной записи полномочия, в которых она нуждается.
Учетная запись прокси должна иметь 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, "Системные Переменные Сервера".