PostgreSQL对等身份验证是本网站上许多问题的来源,但一旦你了解它是如何工作的,它看起来非常棒。
例如,我可以将我的应用程序连接到开发数据库,而无需提供用户名和密码。
所以,我的问题是,我可以在生产服务器上使用对等身份验证吗?它足够安全吗?
非常感谢。
答案 0 :(得分:3)
peer
对于多种部署非常有用 - 例如当你想允许人们使用本地unix用户帐户登录并作为匹配的PostgreSQL用户快速访问数据库时。
对于webapps来说并不好,因为您通常希望每个webapp都有自己的用户。所以你通常会使用md5
。
我经常将两者结合起来。对于webapps,仅允许md5
到其私有数据库 - 如果驱动程序支持,则通过local
套接字,否则通过host
的{{1}}个连接。允许localhost
本地用户访问任何数据库,包括webapp数据库。如果您希望每个数据库中只有一个用户(这样您可以忽略权限 - 我不建议,但我知道有些人这样做)您可以使用peer
映射来允许人们通过{{进行身份验证1}}作为非默认用户名的用户。
然后,您可以通过pg_ident.conf
或peer
(kerberos)添加来自外部世界的hostssl
个连接,如果是Windows数据库主机,则可以添加md5
。
身份验证方法并非全有或全无。有一个原因很容易提供一个备选列表并选择第一个匹配的备选列表。