Connectez-vous à une base de données heroku avec pgadmin

181

Je souhaite gérer ma base de données heroku avec le pgadminclient. Maintenant, je fais ça avec psql. Lorsque j'utilise les données de heroku pg:credentialspour connecter de DB en utilisant pgadmin, j'obtiens:

Une erreur est survenue:

Erreur de connexion au serveur: FATAL: autorisation refusée pour la base de données "postgres" DÉTAIL: l'utilisateur n'a pas le privilège CONNECT.

Un guide sur la façon d'établir la connexion?

Tomas Romero
la source
1
Merci d'avoir posé cette question, je ne savais tout simplement pas que c'était possible
Slow Harry

Réponses:

327

Ouvrez les "Propriétés" du serveur Heroku dans pgAdminIII et modifiez la valeur "DB de maintenance" pour qu'elle devienne le nom de la base de données à laquelle vous souhaitez vous connecter.

pgAdmin III - Enregistrement d'un nouveau serveur

La configuration par défaut convient aux administrateurs de base de données et autres qui peuvent se connecter à n'importe quelle base de données sur le serveur, mais apparemment, ce n'est pas vrai dans votre cas.

araqnid
la source
9
Comme suggéré dans une autre réponse , vous devrez également activer SSL en choisissant "SSL | SSL | requis" dans la boîte de dialogue de connexion, sinon la connexion échouera toujours.
Brad Parks
si vous avez Rails App, vous pouvez accéder à DB en utilisant github.com/igorkasyanchuk/rails_db
Igor Kasyanchuk
Je reçois une erreur sur pgadmin 3 indiquant que le serveur que vous essayez de connecter n'est pas entre 8.4 et 9.3 et qu'il se connecte mais affiche une liste de 159 bases de données avec des fenêtres contextuelles d'erreur tout le temps.
Abhishek
3
Cela a juste cessé de fonctionner pour moi? Cela fonctionne-t-il toujours pour quelqu'un?
Rune Jeppesen
@Ced ouais moi aussi maintenant - Windows avait décidé d'activer mon pare-feu et de bloquer ce port: - /
Rune Jeppesen
102

Après avoir modifié le nom de la base de données de maintenance comme suggéré par la réponse d' araqnid ci - dessus , vous devez également ajouter votre base de données au champ des restrictions de base de données car sans cela, vous verrez des milliers de bases de données et vous ne pourrez peut-être pas trouver la vôtre dans la liste si la liste est trop long.

Plus de détails ici - Comment masquer les bases de données auxquelles je ne suis pas autorisé à accéder

cm12
la source
5
+1 et lors de l'ajout du nom de base de données, veillez à le citer entre guillemets simples car il sera utilisé pour générer dynamiquement une INclause pour filtrer la liste de bases de données.
Glenn
20

Nous avons besoin de SSL pour les connexions en dehors de heroku. Veuillez vérifier si vous forcez SSL dans votre client.

Éditer:

Réponse plus détaillée ici: /dba/21869/connecting-pgadmin3-to-postgres-on-heroku

Nous n'autorisons pas les connexions à la postgresbase de données, assurez-vous donc de définir Maintenance DB sur le nom de votre base de données et assurez-vous d'utiliser SSL.

J'espère que cela devrait suffire.

hgmnz
la source
2
Ai-je besoin de tout type de fichiers / clés pour forcer SSL? (excusez-moi pour l'ignorance)
Tomas Romero
généralement, les interfaces graphiques ont une case à cocher SSL quelque part. Je n'utilise pas pgadmin, mais d'après les documents [1], il semble qu'il y ait un onglet SSL dans la boîte de dialogue de configuration de la connexion. [1] pgadmin.org/docs/dev/connect.html
hgmnz
Lorsque j'ai cliqué sur l'onglet SSL, il m'a demandé des certificats et une clé, et je ne connaissais pas leurs valeurs. Bien que, en définissant le nom de la base de données de maintenance sur mon nom de base de données heroku, je pourrais me connecter en configurant uniquement l'onglet `` Propriétés '', sans avoir à ne rien spécifier sur SSL (cela se fait apparemment automatiquement)
Tomas Romero
10

Remplacez la base de données de maintenance par le nom de votre base de données, par exemple dva70000p0090. Cela devrait fonctionner.

ravi
la source