我正在尝试使用ldap设置pgbouncer以与rds postgres连接。下载了最新版本的pbbouncer(1.11),并使用了hba auth_type。启动pgbouncer守护程序时出现以下错误。我缺少什么吗?
[centos@ip-x.x.x.x etc]$ pgbouncer -V
PgBouncer version 1.11.0
[centos@ip-x.x.x.x etc]$ cat pg_hba.conf
host all user1 0.0.0.0/0 md5
host all all 0.0.0.0/0 ldap ldapserver=ldap-server.com ldapprefix="cn=" ldapsuffix=", dc=group, dc=com"
[centos@ip-x.x.x.x etc]$ cat pgbouncer.ini | grep -v '^$' | grep -v '^;'
[databases]
db1 = host=xxx.rds.amazonaws.com port=5439 dbname=db1
[users]
[pgbouncer]
logfile = /var/log/pgbouncer/pgbouncer.log
pidfile = /var/run/pgbouncer/pgbouncer.pid
listen_addr = *
listen_port = 5439
auth_type = hba
auth_file = /home/centos/pgbouncer-1.11.0/etc/userlist.txt
auth_hba_file = /home/centos/pgbouncer-1.11.0/etc/pg_hba.conf
[centos@ip-x.x.x.x etc]$ pgbouncer -d pgbouncer.ini
2019-09-09 06:57:54.447 UTC [9465] WARNING hba line 2: unsupported method: buf=ldap
2019-09-09 06:57:54.448 UTC [9465] WARNING could not parse hba config line 2
答案 0 :(得分:0)
Auth-method字段:仅支持PgBouncer的
auth_type
支持的方法,除了any
和pam
,它们仅在全局范围内起作用。不支持用户名映射(map=
)参数。
auth_type
如何验证用户身份。
PAM:
PAM用于验证用户,auth_file
被忽略。此方法与使用auth_user
选项的数据库不兼容。报告给PAM的服务名称是“ pgbouncer”。另外,HBA配置文件仍不支持pam
。HBA:
实际的身份验证类型是从auth_hba_file
加载的。这允许不同的身份验证方法使用不同的访问路径。示例:通过Unix套接字的连接使用peer
auth方法,通过TCP的连接必须使用TLS。从1.7版开始受支持。证书:
客户端必须通过具有有效客户端证书的TLS连接进行连接。然后从证书的CommonName字段中获取用户名。md5:
使用基于MD5的密码检查。这是默认的身份验证方法。auth_file
可能同时包含MD5加密或纯文本密码。如果配置了md5
,并且用户具有SCRAM机密,则会自动使用SCRAM身份验证。scram-sha-256:
对SCRAM-SHA-256使用密码检查。auth_file
必须包含SCRAM机密或纯文本密码。请注意,SCRAM机密只能用于验证客户端的密码,而不能用于登录服务器。为了能够在服务器连接上使用SCRAM,请使用纯文本密码。普通:
明文密码通过网络发送。不推荐使用。信任:
未完成身份验证。用户名仍必须存在于auth_file
中。任何:
与trust
方法类似,但是给定的用户名将被忽略。要求所有数据库都配置为以特定用户身份登录。此外,控制台数据库允许任何用户以管理员身份登录。
因此不支持ldap
身份验证方法,这说明了您的错误。
您可以尝试使用pam
和pam_ldap
插件。