Connect to Supabase
You need the project's database password and about one minute in the Supabase dashboard. You do not need the anon key, the service role key, or the IPv4 add-on.
-
Copy the connection string from Supabase
Open your project, press Connect at the top of the dashboard, and choose the Session pooler string. It looks like this:
postgresql://postgres.[PROJECT-REF]:[YOUR-PASSWORD]@[POOLER-HOST]:5432/postgresChoose Direct connection instead only if you know your network has IPv6 or the project has the IPv4 add-on. Direct strings use
db.[PROJECT-REF].supabase.co:5432and the userpostgres. -
Paste it into a new PostgreSQL connection
In plainDB, add a connection and choose PostgreSQL. On Windows press Paste connection string; on macOS paste into the field at the top of the sheet. The app recognises the Supabase host, switches on Supabase project, and fills Project ref, Connect via and Region. The
[YOUR-PASSWORD]placeholder is discarded rather than saved as a password.Copy the complete dashboard string rather than reconstructing the pooler hostname from a region. Supabase assigns the exact endpoint; the hostname is not reliably derived from the region alone. Keep its host, port and username together.
The preset fills the connection fields and defaults to session pooling. If you change modes, return to the dashboard and paste the string for that mode so you keep the current endpoint.
-
Enter the database password
This is the password you set when the project was created. If you have lost it, reset it under Project Settings, Database. The Mac app stores it in macOS Keychain. Windows protects it with DPAPI for the current user and stores the protected value locally.
-
Leave SSL on
The preset sets SSL mode to
require, so the driver refuses to connect without encryption. If you want the server's certificate verified as well, download the CA certificate from Database settings in the Supabase dashboard, set SSL mode toverify-full, and choose the file as the SSL root cert. -
Connect
Press Connect. The sidebar fills with the schemas and tables of your project, as permitted by your database role. Browse and filter as with any PostgreSQL database. Staged grid edits show their generated SQL before applying; manually entered SQL uses the query editor’s Run controls.
If it does not connect
| What you see | What it means | What to do |
|---|---|---|
| A network error on a direct connection, and a note about IPv6 | The direct endpoint may be unreachable from your network; IPv4-only access is one possible cause. | Paste the session pooler string from the dashboard; also check project status and network restrictions. |
| Tenant or user not found | The pooler could not match the endpoint and username to your project. | Paste the complete dashboard string again so the host and username match. |
| Password authentication failed | The server rejected the credentials; check the username, password and any remaining placeholder. | Verify the copied connection and password; reset the database password only if needed. |
| Prepared statement errors after connecting | A transaction-pooler connection does not support prepared statements. | If using transaction pooling, paste the session pooler string instead. |
What this connection is not
plainDB talks to the Postgres database inside your project. It does not use the REST API, so anon and service keys are never needed, and it does not manage Auth, Storage, Realtime or Edge Functions. The Supabase page has the full list.