【发布时间】:2022-12-20 18:25:12
【问题描述】:
我正在研究 pgBouncer 的配置,我能够让它与 auth_query 一起工作。是否有可能以某种方式为 auth_user 加密密码? 最初我尝试使用 SCRAM 哈希,但随后连接失败。我读过 md5 是可能的,但我已经在服务器上配置了 SCAM。
;
; pgbouncer configuration example
;
[databases]
test5432 = port=5432 host=localhost auth_user=myauthuser
alin = port=5435 host=localhost auth_user=myauthuser5435
[pgbouncer]
listen_addr = *
listen_port = 6432
admin_users = postgres
;stats_users = monitoring userid
auth_type = scram-sha-256
; put these files somewhere sensible:
auth_query = SELECT usename, passwd FROM user_search($1)
auth_file = users.txt
logfile = pgbouncer.log
pidfile = pgbouncer.pid
server_reset_query = DISCARD ALL;
; default values
pool_mode = session
default_pool_size = 20
log_pooler_errors = 1
用户.txt
"postgres" "SCRAM-SHA-256$4096:Ou4b7GtxwKdQ2NnKwHUxoQ==$RT+nGDekJIzK4L9wxGY4W7$
"myauthuser" "asdf"
"myauhuser5345" "asdf"
我正在尝试运行:
psql -h 192.168.1.59 -p 6432 -U alinka test5432
【问题讨论】:
-
在数据库服务器机器上安装 pgBouncer 并为
auth_user使用本地trust身份验证。如果那不可行,请使用 SSL 认证身份验证。 -
@LaurenzAlbe 我从
users.txt中删除了myauthuser,并将local all myauthuser,postgres trust添加到pg_hbf.conf,但现在我在pgbouncer.log-WARNING server login failed: FATAL password authentication failed for user "myauthuser"中收到一条错误消息。 Postgres 托管在我笔记本电脑上的 VM 上,我尝试从我的笔记本电脑连接。不确定这是否有所作为。使用端口 5432 的直接连接工作正常。 -
那么就不是
local了,一定不要忘记pg_hba.conf里面有个单机掩码。 -
假设明文密码是
Pk(dw7*ajQ(1xlIv4M.E6sJzI。你会把它加密成什么,这样做的意义何在?它要么拥有允许其登录的东西,要么没有。 -
local是通过套接字文件而不是 IP 地址连接时使用的内容。所以它将用于host=/tmp或host=/var/run/postgresql。
标签: postgresql pgbouncer postgresql-14