Conéctese a una base de datos heroku con pgadmin

181

Me gustaría administrar mi base de datos heroku con el pgadmincliente. Por ahora, he estado haciendo esto con psql. Cuando uso datos de heroku pg:credentialspara conectar de DB usando pgadmin, obtengo:

Se ha producido un error:

Error al conectarse al servidor: FATAL: permiso denegado para la base de datos "postgres" DETALLE: El usuario no tiene el privilegio CONNECT.

¿Alguna guía sobre cómo lograr la conexión?

Tomás Romero
fuente
1
Gracias por hacer esta pregunta, simplemente no sabía que era posible
Slow Harry

Respuestas:

327

Abra las "Propiedades" del servidor Heroku en pgAdminIII y cambie el valor "Mantenimiento DB" para que sea el nombre de la base de datos a la que desea conectarse.

pgAdmin III - Nuevo registro del servidor

La configuración predeterminada es adecuada para DBA y otros que pueden conectarse a cualquier base de datos en el servidor, pero aparentemente eso no es cierto en su caso.

araqnid
fuente
9
Como se sugiere en otra respuesta , también deberá habilitar SSL seleccionando "SSL | SSL | require" en el cuadro de diálogo de conexión, de lo contrario, seguirá sin poder conectarse.
Brad Parks el
si tiene la aplicación Rails, puede acceder a DB utilizando github.com/igorkasyanchuk/rails_db
Igor Kasyanchuk
Recibo un error en pgadmin 3 que indica que el servidor que está intentando conectar no está entre 8.4 y 9.3 y se conecta, pero muestra una lista de 159 bases de datos con ventanas emergentes de error todo el tiempo.
Abhishek
3
¿Esto simplemente dejó de funcionar para mí? ¿Sigue funcionando para alguien?
Rune Jeppesen
@Ced sí, yo también ahora - Windows había decidido activar mi firewall y bloquear ese puerto: - /
Rune Jeppesen
102

Después de cambiar el nombre de la base de datos de mantenimiento como sugiere la respuesta anterior de araqnid , también debe agregar su base de datos al campo de restricciones de base de datos porque sin esto verá miles de bases de datos y es posible que no pueda encontrar la suya en la lista si la lista es demasiado largo.

Más detalles aquí: cómo ocultar bases de datos a las que no se me permite acceder

cm12
fuente
55
+1 y al agregar el nombre de db, asegúrese de citarlo entre comillas simples, ya que se usará para generar dinámicamente una INcláusula para filtrar la lista de db.
Glenn
20

Requerimos SSL para conexiones fuera de heroku. Verifique si está forzando SSL en su cliente.

Editar:

Respondido más a fondo aquí: /dba/21869/connecting-pgadmin3-to-postgres-on-heroku

No permitimos conexiones a la postgresbase de datos, así que asegúrese de establecer la base de datos de mantenimiento en el nombre de su base de datos y asegúrese de usar SSL.

Eso debería ser suficiente.

hgmnz
fuente
2
¿Necesito algún tipo de archivo / clave para forzar SSL? (disculpe la ignorancia)
Tomás Romero
Por lo general, las interfaces gráficas tienen una casilla de verificación SSL en alguna parte. No uso pgadmin, pero según los documentos [1] parece que hay una pestaña SSL en el diálogo de configuración de la conexión. [1] pgadmin.org/docs/dev/connect.html
hgmnz
Cuando hice clic en la pestaña SSL, me pidió certificados y una clave, y no sabía los valores para ellos. Aunque, si compro el nombre de la base de datos de mantenimiento a mi nombre de base de datos heroku, podría conectarme configurando solo la pestaña 'Propiedades', sin tener que especificar nada sobre SSL (esto se hace aparentemente automáticamente)
Tomas Romero
10

Cambie la base de datos de mantenimiento al nombre de su base de datos, por ejemplo, dva70000p0090. Esto debería funcionar.

ravi
fuente