2014-01-27 3 views
5

Я довольно новичок в PostgreSQL, имея достаточный опыт работы с MS SQL Server. Одна из особенностей PostgreSQL, которая привлекла мое внимание, - это аутентификация SSPI, которая, я надеюсь, облегчит переход от MS SQL. Однако я не могу заставить его работать.Аутентификация PostgreSQL SSPI - FATAL: 2801: аутентификация пароля для пользователя «xxx»

Пока что сервер и клиент работают на одной машине Windows 7, которая не является членом домена. Если я правильно понимаю, SSPI auth возвращается из Kerberos в NTLM, поэтому он должен работать без домена - я прав?

Когда я пытаюсь подключиться (из приложения .NET через Npgsql), я получаю сообщение NpgsqlException с сообщением: Fatal: 28P01: password authentication failed for user "xxx" Сообщение немного озадачивает меня, потому что я не использую аутентификацию по паролю.

Мои pg_hba.conf:

host all    all    127.0.0.1/32   md5 
host all    all    ::1/128     md5 
host all    all    127.0.0.1/32   sspi 

Npgsql соединение строки:

Server=127.0.0.1;Port=5432;Database=mydb;Integrated Security=true;

Что я здесь делаю неправильно? Или это просто не работает без домена?

ответ

4

Хорошо, получилось. Я не могу одновременно допускать проверку подлинности MD5 и SSPI. Точно так же должно бытьМеханизм «проваливания» отсутствует - используется только первый метод аутентификации, соответствующий запросу,. Таким образом, все, что осталось сделать, это удалить первые две строки из pg_hba.conf и создать роль с тем же именем, что и мой вход в Windows. Что меня беспокоит, так это то, что, очевидно, ошибка конфигурации игнорируется, даже предупреждение в журнале - есть ли какая-то причина?

+0

Хорошо, мне нужно просто RTFM: http://www.postgresql.org/docs/9.3/static/auth-pg-hba-conf.html: «Нет« провалов »или« резервных копий », : если выбрана одна запись и аутентификация не удалась, последующие записи не учитываются. Если запись не соответствует, доступ запрещен. " – chris

Смежные вопросы