У меня есть MySQL (MariaDB) в Ubuntu 14.04 для аутентификации пользователей из нашего экземпляра OpenLDAP с использованием документации. Вот. Когда я подключаюсь к серверу и выдаю mysql -u user101 -p
Я могу пройти аутентификацию без проблем (user101 является пользователем LDAP; у него нет пароля в mysql). Когда я пытаюсь использовать удаленное соединение, аутентификация не выполняется:
$ mysql --ssl -u user101 -p -h myserver
Enter password:
ERROR 2059 (HY000): Authentication plugin 'dialog' cannot be loaded: /usr/lib/mysql/plugin/dialog.so: cannot open shared object file: No such file or directory
На сервере консоль выдаёт такое сообщение:
# 2017 Jul 18 08:27:05 myserver pam_unix(mysql:auth): auth could not identify password for [user101]
Документация Вот упоминает dialog
плагин, но говорит Не нужно ничего устанавливать и включать так что не уверен, что делать. Я не компилировал и не устанавливал pam_user_map.c
как упоминалось в этой ссылке, поскольку локальная аутентификация работала нормально.
Я дал пользователю удаленный доступ, используя %
в имени хоста для записи mysql:
CREATE USER 'user101'@'%' IDENTIFIED VIA pam USING 'mariadb';
GRANT ALL PRIVILEGES ON test.* TO 'user101'@'%' IDENTIFIED VIA pam;
Я предполагаю, что остальная часть настройки LDAP (из документации) верна, иначе сервер не будет аутентифицировать пользователя локально. Что-то мне не хватает? Почему это работает локально, а не удаленно?
Если вы хотите использовать клиент mysql, а не клиент mariadb, вам необходимо передать следующую опцию: mysql --enable-cleartext-plugin --ssl -u user101 -p -h myserver
Это сработало (на клиенте) aptitude install libmariadbclient18