如何配置PostgreSQL使用Windows身份验证?

22

我正在尝试设置PostgreSQL,并允许仅特定的Windows用户从数据库中访问数据。使用MS SQL设置Windows身份验证非常容易,但我无法弄清如何在PostgreSQL中设置它。

我已经阅读了http://www.postgresql.org/docs/current/static/auth-methods.html上的文档,并编辑了pg_hba文件。 但是这样做后,PostgreSQL服务无法启动。

2个回答

16

如果Postgresql服务器与客户机都在Windows上运行,那么您可以使用以下方法进行测试以查看是否有效:

host all all 0.0.0.0/0 sspi

PostgreSQL开发人员Magnus Hagander 详细说明

"所有从本地机器、您的域或受信任的域连接的用户将自动使用配置的SSPI身份验证进行认证(您可以通过组策略启用/禁用NTLMv2或LM等内容,这是一个Windows配置而不是PostgreSQL)。您仍然需要在PostgreSQL中创建登录角色,但只需如此即可。请注意,域没有得到验证,只有用户名。因此,如果管理员用户在主域和受信任的域中尝试连接到PostgreSQL,则会被视为同一用户。请注意,此方法与Unix客户端不兼容."

如果您混合使用Unix-Windows,则必须采用使用GSSAPI的Kerberos进行配置。部署Pg在Windows环境中的文章可能会引导您找到正确的路径。


12

如果其他人像我一样遇到这个问题,在9.5版本开始,您需要为ipv4和ipv6添加一个可选参数,以使其正常工作。

include_realm=0

因此整个内容将如下所示:

host all your_username 127.0.0.1/32 sspi include_realm=0

谢谢!这为我解决了问题。 - kamranicus

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接