我正在尝试设置PostgreSQL并且只允许某些Windows用户访问数据库中的数据。使用MS SQL设置Windows身份验证非常简单,但我无法弄清楚如何在PostgreSQL中设置它。
我已浏览http://www.postgresql.org/docs/current/static/auth-methods.html
的文件并编辑了pg_hba文件。但在这样做之后,PostgreSQL服务无法启动。
答案 0 :(得分:11)
Postgresql服务器是否在Windows以及客户端上运行,那么您可以使用它来测试它是否有效:
host all all 0.0.0.0/0 sspi
Postgresql开发人员Magnus Hagander,elaborates就此:
“从本地计算机,您的域或受信任域连接的所有用户将使用SSPI配置的身份验证自动进行身份验证(您可以使用组策略启用/禁用NTLMv2或LM之类的东西 - 它是Windows配置,而不是PostgreSQL one)。你仍然需要在PostgreSQL中创建登录角色,但就是这样。请注意,域根本没有验证,只有用户名。因此,主用户和可信域中的用户管理员将被视为同一用户如果他们尝试连接到PostgreSQL。请注意,此方法与Unix客户端不兼容。“
如果混合使用Unix-Windows,那么你必须使用GSSAPI求助于kerberos,这意味着你必须进行一些配置。 This article on deploying Pg in Windows environments可能会引导您走上正确的道路。
答案 1 :(得分:8)
如果有其他人像我这样开始这样做,那么你需要在ipv4和ipv6中添加一个可选参数才能使其正常工作
include_realm = 0
所以整个事情看起来像
host all your_username 127.0.0.1/32 sspi include_realm=0