Conecte-se a um banco de dados heroku com o pgadmin

181

Eu gostaria de gerenciar meu banco de dados heroku com o pgadmincliente. Até agora, eu tenho feito isso com psql. Quando eu uso dados heroku pg:credentialspara conectar o banco de dados pgadmin, obtenho:

Ocorreu um erro:

Erro ao conectar-se ao servidor: FATAL: permissão negada para o banco de dados "postgres" DETALHE: O usuário não tem privilégio CONNECT.

Qualquer guia sobre como conseguir a conexão?

Tomas Romero
fonte
1
Obrigado por fazer esta pergunta, eu simplesmente não sabia que era possível #
Slow Harry

Respostas:

327

Abra as "Propriedades" do servidor Heroku no pgAdminIII e altere o valor "DB de manutenção" para ser o nome do banco de dados ao qual você deseja se conectar.

pgAdmin III - Registro de novo servidor

A configuração padrão é adequada para os DBAs e colaboradores que podem se conectar a qualquer banco de dados no servidor, mas aparentemente isso não é verdade no seu caso.

araqnid
fonte
9
Conforme sugerido em outra resposta , você também precisará habilitar o SSL escolhendo "SSL | SSL | require" na caixa de diálogo de conexão, caso contrário, ele ainda não conseguirá se conectar.
Brad Parks
se você tem Rails App você pode acessar DB usando github.com/igorkasyanchuk/rails_db
Igor Kasyanchuk
Estou recebendo um erro no pgadmin 3 de que o servidor que você está tentando conectar não está entre 8.4 e 9.3 e ele se conecta, mas mostra uma lista de 159 bancos de dados com pop-ups de erro o tempo todo.
Abhishek 25/10
3
Isso simplesmente parou de funcionar para mim? Ainda funciona para alguém?
Rune Jeppesen
@Ced yeah me too now - O Windows decidiu ativar meu firewall e bloquear essa porta: - /
Rune Jeppesen
102

Depois de alterar o nome do banco de dados de manutenção, conforme sugerido pela resposta do araqnid acima , você também deve adicionar seu banco de dados ao campo de restrições do banco de dados, pois sem isso você verá milhares de bancos de dados e poderá não encontrar o seu na lista se a lista estiver demasiado longo.

Mais detalhes aqui - Como ocultar bancos de dados que não tenho permissão para acessar

cm12
fonte
5
+1 e ao adicionar o nome do banco de dados, não deixe de citá-lo entre aspas simples, pois ele será usado para gerar dinamicamente uma INcláusula para filtrar a lista de bancos de dados.
Glenn
20

Exigimos SSL para conexões fora do heroku. Verifique se você está forçando SSL no seu cliente.

Editar:

Respondido mais detalhadamente aqui: /dba/21869/connecting-pgadmin3-to-postgres-on-heroku

Como não permitimos conexões com o postgresbanco de dados, defina o Maintenance DB como o nome do banco de dados e use SSL.

Espero que isso seja suficiente.

hgmnz
fonte
2
Preciso de algum tipo de arquivo / chave para forçar o SSL? (desculpe-me pela ignorância)
Tomas Romero
interfaces tipicamente gráficas têm uma caixa de seleção SSL em algum lugar. Eu não uso o pgadmin, mas com base nos documentos [1], parece que há uma guia SSL na caixa de diálogo de configuração da conexão. [1] pgadmin.org/docs/dev/connect.html
hgmnz
Ao clicar na guia SSL, ele solicitou certificados e uma chave e não sabia os valores para eles. Embora, comprar definir o nome DB manutenção para o meu nome heroku DB, eu poderia ligar configurando somente a guia 'Propriedades', sem ter que especificar nada sobre SSL (esta sendo feito, aparentemente, automaticamente)
Tomas Romero
10

Mude o banco de dados de manutenção para o nome do seu banco de dados, por exemplo, dva70000p0090. Isso deve funcionar.

Ravi
fonte