на данный момент поддерживаются только пароль для аутентификации с открытым текстом и пароль для аутентификации md5. получено 10

#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:

Возможно, вы указали неверный порт в строке подключения. У меня была такая же проблема, и она разрешилась после того, как я изменил номер порта в строке соединения