#c# #postgresql #npgsql #postgresql-13
#c# #postgresql #npgsql #postgresql-13
Вопрос:
Я использую npgsql для postgresql13, но при попытке подключения я получаю следующую ошибку:
на данный момент поддерживаются только пароль для аутентификации с открытым текстом и пароль для аутентификации md5. получено 10
Моя строка подключения: NpgsqlConnection conn = new NpgsqlConnection («Сервер = xxxx; Порт = xxxx; Идентификатор пользователя = xxxx; Пароль = xxx; База данных = база данных;»)
В postgresql 9.6 все работало нормально, но оно было перенесено на версию 13, и это породило эту проблему
Комментарии:
1. Похоже, что для шифрования пароля было установлено значение md5 при сохранении пароля.
Ответ №1:
Вам необходимо обновить Npgsql 4.0 или выше, который поддерживает метод аутентификации scram-sha-256, доступный с PostgreSQL v10.
Ответ №2:
Спасибо за вашу помощь, библиотеки действительно нуждаются в обновлении.
В случае невозможности изменения, как в моем случае, необходимо выполнить следующее:
В файле postgresql.conf закомментируйте строку #password_encryption, возможно, вам потребуется повторно сгенерировать пароль.
Ответ №3:
Сервер базы данных, возможно, был обновлен, но клиентская библиотека, которую C # использует для подключения к серверу, не была обновлена. Старый клиент не понимает новый метод аутентификации. Попробуйте обновить библиотеку npgsql.
Ответ №4:
Возможно, вы указали неверный порт в строке подключения. У меня была такая же проблема, и она разрешилась после того, как я изменил номер порта в строке соединения