Saltar al contenido

Cómo conectarse a una base de datos PostgreSQL remota a través de SSL con Python

Esta es el arreglo más exacta que encomtrarás aportar, pero primero estúdiala detenidamente y valora si se adapta a tu trabajo.

Solución:

Utilizar el psycopg2 módulo.

Deberá usar las opciones SSL en su conexión stringo agregarlos como key argumentos de palabra:

import psycopg2

conn = psycopg2.connect(dbname='yourdb', user='dbuser', password='abcd1234', host='server', port='5432', sslmode='require')

En este caso sslmode especifica que se requiere SSL.

Para realizar la verificación del certificado del servidor, puede configurar sslmode para verify-full o verify-ca. Debe proporcionar la ruta al certificado del servidor en sslrootcert. También establezca el sslcert y sslkey valores a su certificado de cliente y key respectivamente.

Se explica en detalle en la documentación de Cadenas de conexión de PostgreSQL (consulte también Palabras clave de parámetros) y en Compatibilidad con SSL.

También puede usar un túnel ssh con paramiko y sshtunnel:

import psycopg2
import paramiko
from sshtunnel import SSHTunnelForwarder

mypkey = paramiko.RSAKey.from_private_key_file('/path/to/private/key')

tunnel =  SSHTunnelForwarder(
        (host_ip, 22),
        ssh_username=username,
        ssh_pkey=mypkey,
        remote_bind_address=('localhost', psql_port))

tunnel.start()
conn = psycopg2.connect(dbname='gisdata', user=psql_username, password=psql_password, host='127.0.0.1', port=tunnel.local_bind_port)

Calificaciones y comentarios

Recuerda que te brindamos la opción de aclarar si te fue de ayuda.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *