Where the open source database community meets: Use code PERCONA75 and secure your spot for Percona Live.  Register

Configuring PgBouncer auth_type with Trust and HBA: Examples and Known Issues

May 14, 2025
Author
Lalit Choudhary
Share this Post:

PgBouncer is a lightweight external connection pooler that can be introduced between an application and a PostgreSQL database. It manages its own user authentication and has its own database for users, and uses auth_type options to authenticate users.

This blog post explains configuring PgBouncer auth_type trust and hba use cases with configuration examples and known issues.

Process:

auth_type = trust

With auth_type = trust, authentication is not done. The username must still exist in the auth_file.

Using auth_type = trust for the user via pgbouncer.

pgbouncer.ini:

Add an empty password in userlist.txt; otherwise, the pgbouncer gives this error: ERROR broken auth file:

PostgreSQL pg_hba.conf:

As we can see, testusr with auth_type trust can log in via pgbpuncer without a password.

pgbouncer log:

auth_type=hba

This loads the actual authentication type from the auth_hba_file. This allows different authentication methods for different access paths, such as trust, md5, scram-sha-25, etc.

Example:

pgbouncer.ini:

userlist.txt:

pg_hba.conf

Login tests from pgbouncer for trust, md5, scram-sha-25 auth method users:

trust:

pgbouncer log:

md5:

scram-sha-25:

auth_query method

If you do not want to mention all users in the auth_file, you can configure pgbouncer with auth_query.

We suggest using the auth_query method. This method minimizes the need to store password secrets outside the database, allowing you to use pgbouncer as a connection pooler while ensuring the maximum possible security offered by the password authentication scheme.

Let us consider another example.

pgbouncer.ini:

userlist.txt:

Add the pgbounceauth user entry in pg_hba.conf:

For auth_type=hba when using PAM authentication method in pg_hba.conf for a user, it has some issues as reported here: https://github.com/pgbouncer/pgbouncer/issues/1253, https://github.com/pgbouncer/pgbouncer/pull/1291.

Further reading


Enterprise PostgreSQL

0 0 votes
Article Rating
Subscribe
Notify of
guest

1 Comment
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
Mathieu Lafage
Mathieu Lafage
3 months ago

Hi,

and thank you for your contributed article.

My concerns is about end-to-end SCRAM auth.
I manage to connect to a postgresql backend with scram, but only if my frontend user in pgbouncer .ini and userlist uses md5 password.

I tried the auth_type=hba configuration, granting access with a SCRAM auth, but with no success, receiving both :FATAL: server login failed: wrong password type
FATAL: SSL required

Also, please note that my pg_bouncer is on a host different of both the client and the database.
Any idea on how best to setup end-to-end SCRAM, or shall I resort to either md5 clear password on pg bouncer, or using auth query?

Best regards,
Mathieu

Far
Enough.

Said no pioneer ever.
MySQL, PostgreSQL, InnoDB, MariaDB, MongoDB and Kubernetes are trademarks for their respective owners.
© 2026 Percona All Rights Reserved