Como conectar a SQL Server remotamente desde Python



SQL Server es una de las bases de datos más utilizadas y conectarse desde sistemas remotos es de lo más normal en los diferentes entornos siempre manteniendo los parámetros de seguridad.




El ejemplo “desde Python” es lo de menos, aquí lo que va a importar es cómo configuramos SQL Server para que acepte conexiones remotas.

Lo voy hacer con SQL Server 2019 pero vale igual para la versión 2022 y la 2017, y si tenéis una anterior hay que ir pensando en actualizarla porque ya no tienen soporte, bueno a la 2016 le queda un año … pero vamos que hay que hacer un pensamiento.

Aquí podéis ver las versiones, números y fechas.

Pero vamos al lío!!

Para configurar SQL Server y que acepte conexiones remotas tenemos que habilitar el puerto y la IP desde el Administrador de configuraciones de SQL Server

Y buscamos e Protocolos de MSSQLSERVER en el menú de la izquierda y TCP/IP

Administrador de configuraciones de SQL Server

Lo abrimos y habilitamos TCP/IP

Administrador de configuraciones de SQL Server - Activar TCP/IP

Ahora en el tab de direcciones IP y habilitamos la dirección IP de la máquina en el puerto 1433

Administrador de configuraciones de SQL Server - Activar IP y puerto

Reiniciamos el servicio de SQL Server

Administrador de configuraciones de SQL Server - Reiniciar el servicio de SQL Server

Después de esto ya podemos conectar Como ejemplo este script en Python ejecutado desde Ubuntu, aquí cambiar vuestra base de datos y tabla.

import pyodbc

# Configuración de conexión
SERVER = '10.0.2.15,1433' 
DATABASE = 'nenuro'
USERNAME = 'sa'
PASSWORD = 'Asdf1234'
DRIVER = 'ODBC Driver 18 for SQL Server'


# Crear cadena de conexión
connection_string = (
   f'DRIVER={{{DRIVER}}};'
   f'SERVER={SERVER};'
   f'DATABASE={DATABASE};'
   f'UID={USERNAME};'
   f'PWD={PASSWORD};'
   f'TrustServerCertificate=yes;'
   f'Encrypt=yes;'
)


# Intentar la conexión y recuperar registros
try:
   connection = pyodbc.connect(connection_string)
   cursor = connection.cursor()


   # Ejecutar consulta
   cursor.execute("SELECT * FROM genders")
   rows = cursor.fetchall()


   # Mostrar resultados
   for row in rows:
       print(row)


   cursor.close()
   connection.close()
except pyodbc.Error as e:
   print("Error al conectar o consultar SQL Server:", e)

Para poder utilizarlo cambiar los datos de conexión, la query y tener un entorno preparado para ejecutar python y odbc.




... y esto es todo amig@s!!
Saludos
Alex
:-)
/

Suscríbete a nuestra newsletter

Sin spam. Solo contenido útil para profesionales de bases de datos.