首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >pgbouncer和scram-sha 256设置

pgbouncer和scram-sha 256设置
EN

Stack Overflow用户
提问于 2021-10-06 22:50:52
回答 1查看 587关注 0票数 1

我能够让SCRAM-SHA-256身份验证与pgpool一起工作,但我还没有找到一个很好的示例来在pgbouncer中设置它。我在试着用auth_query。在postgres中,pgbouncer将连接的用户具有加密的密码并存储在SCRAM-SHA-256中。但是我不知道如何在userlist.txt中创建条目。应该是这样的格式:

代码语言:javascript
运行
复制
SCRAM-SHA-256$<iterations>:<salt>$<storedkey>:<serverkey>

storedkey和serverkey到底是什么,我如何生成它们?我可以使用哪些工具来创建它?在pgpool中,我可以使用pg_enc,但我没有看到pgbouncer的任何东西。

EN

回答 1

Stack Overflow用户

发布于 2021-10-07 04:20:43

您不需要自己构造SCRAM散列密码,您可以通过查询PostgreSQL数据库中的pg_authid表来获得它:

代码语言:javascript
运行
复制
SELECT rolpassword
FROM pg_authid
WHERE rolname = 'pgbouncer';

然而,正如the documentation所说:

身份验证文件中存储的密码或密码有两个用途。首先,如果配置了基于密码的身份验证方法,则它们用于验证传入客户端连接的密码。其次,如果后端服务器需要基于密码的身份验证(除非直接在数据库的连接字符串中指定密码),则将它们用作到后端服务器的传出连接的密码。如果密码以纯文本或MD5哈希形式存储,则后一种方法有效。如果客户端身份验证也使用SCRAM,PgBouncer数据库定义没有指定用户名,并且SCRAM密钥在PgBouncer和PostgreSQL服务器中是相同的(相同的盐和迭代,而不仅仅是相同的密码),则SCRAM密钥只能用于登录到服务器。这是由于SCRAM的固有安全属性造成的:存储的SCRAM密钥本身不能用于派生登录凭据。

因此,如果将该用户用作auth_user,则不能对该用户使用SCRAM散列密码,但必须使用明文密码。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69473519

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档