196
votes

I would like to manage my heroku database with pgadmin client. By now, I've been doing this with psql. When I use data from heroku pg:credentials to connect de DB using pgadmin, I obtain:

An error has occurred:

Error connecting to the server: FATAL: permission denied for database "postgres" DETAIL: User does not have CONNECT privilege.

Any guide on how to achieve the connection?

5
Thank you for asking this question, I just didn't know that it is possibleSlow Harry

5 Answers

342
votes

Open the "Properties" of the Heroku server in pgAdminIII and change the "Maintenance DB" value to be the name of the database you want to connect to.

pgAdmin III - New Server Registration

The default setup is suitable for DBAs et al who can connect to any database on the server, but apparently that isn't true in your case.

110
votes

After you change the Maintenance DB name as suggested by araqnid's answer above, you should also add your database to the DB restrictions field because without this you will see thousands of databases and you may not be able to find yours in the list if the list is too long.

More details here - How to hide databases that I am not allowed to access

27
votes

This is for pgAdmin 4

In order to connect pgAdmin to your database (postgres instance in Heroku), do the following:

  1. Login to Heroku, and select the application in which you have the database enter image description here

  2. Select the Resources tab and then click on "Heroku Postgres Ad-on" (see below). This will open up a new tab. enter image description here

  3. Select the Settings tab and then click on "View Credentials..." (see below) enter image description here

You will get the following information that you will use in pgAdmin:

enter image description here

  1. Go to pgAdmin, and create a new server

enter image description here

  1. In the General tab, give a useful name enter image description here

  2. In the Connection tab, fill the info you got at Heroku enter image description here

  3. In order to avoid seeing thousands of databases, you need to add your database name to DB restriction in the Advanced tab (see below) enter image description here

20
votes

We require SSL for connections outside heroku. Please verify whether you're forcing SSL in your client.

Edit:

Answered more thoroughly here: https://dba.stackexchange.com/questions/21869/connecting-pgadmin3-to-postgres-on-heroku

We don't allow connections to the postgres database, so be sure to set Maintenance DB to your database name, and be sure to use SSL.

That should hopefully suffice.

11
votes

Change the Maintenance Database to the name of your Database, e.g. dva70000p0090. This should work.