Как настроить PostgreSQL для использования проверки подлинности Windows?

Я пытаюсь настроить PostgreSQL и разрешать только определенным пользователям Windows доступ к данным из базы данных. Настройка проверки подлинности Windows довольно просто с MS SQL, но я не могу понять, как ее настроить в PostgreSQL.

Я просмотрел документацию на http://www.postgresql.org/docs/current/static/auth-methods.html

и отредактировал файл pg_hba. Но после этого служба PostgreSQL не запускается.

Ответы

Ответ 1

Является ли сервер Postgresql для Windows, а также для клиентов, то вы можете проверить это, чтобы узнать, работает ли это:

host all all 0.0.0.0/0 sspi

Магнус Хагерн, разработчик Postgresql, разрабатывает по этому вопросу:

"Все пользователи, подключающиеся с локального компьютера, вашего домена или доверенного домена, будут автоматически аутентифицированы с использованием настроенной аутентификации SSPI (вы можете включать/отключать такие вещи, как NTLMv2 или LM, с помощью групповой политики - это конфигурация Windows, а не PostgreSQL). Вам все равно нужно создать роль входа в PostgreSQL, но это. Обратите внимание, что домен не проверен вообще, а только имя пользователя. Таким образом, пользовательский администратор в вашем основном и доверенном домене будет считаться одним и тем же пользователем если они пытаются подключиться к PostgreSQL. Обратите внимание, что этот метод несовместим с кликами Unix."

Если вы смешиваете Unix-Windows, вам нужно прибегнуть к kerberos, используя GSSAPI, что означает, что вам нужно выполнить некоторую настройку. Эта статья о развертывании Pg в средах Windows может привести вас к правильному пути.

Ответ 2

Если кто-то еще обходит это так, как я сделал, начиная с 9.5, вам нужно добавить необязательный параметр как к ipv4, так и к ipv6, чтобы это работало

include_realm = 0

поэтому все это будет выглядеть как

host all your_username 127.0.0.1/32 sspi include_realm=0