Después de la instalación de Microsoft SQL Server en un servidor Windows, por defecto no permite conexiones remotas a la base de datos. Por ello es necesario habilitar el protocolo TCP/IP sobre la dirección IP de la interfaz del servidor. Después de activarlo, asignarle un puerto para el proceso (por defecto se establecerá en puertos dinámicos) y posteriormente también será necesario configurar los cortafuegos para no filtrar las conexiones.
Advertencia
Puede suponer un problema grave de seguridad permitir la conexión pública al SQL Server, por lo tanto, te recomendamos utilizar una conexión VPN (ejemplo Cómo configurar OpenVPN Server con pfSense). De esta forma, será posible activar el puerto TCP/IP por la interfaz de la red privada para la conexión y tendrá el cifrado adicional del túnel establecido. Una alternativa para configurarlo por la interfaz pública, es filtrar en el Firewall mediante una regla especifica para las determinadas direcciones IP que deban tener acceso al SQL Server.
Procedimiento
Primero deberás acceder al SQL Server Configuration Manager, en el apartado SQL Server Network Configuration > Protocols for [VersiónSQL], te aparecerá la lista de protocolos, haz clic derecho en TCP/IP y de nuevo haz clic en Enable para activarlo.
Luego repite la misma acción pero haciendo clic en Properties, abrirá una nueva ventana y en su pestaña IP Addresses, en la casilla Enabled actívalo seleccionando Yes en la interfaz deseada. Adicionalmente elimina el valor de TCP Dynamic Ports y introduce el puerto deseado en TCP Port (el puerto por defecto para es el TCP 1433 para Microsoft SQL Server). A continuación tienes un ejemplo de configuración para la interfaz de red pública:
También es posible modificarlo de forma global para todas las interfaces en el apartado IPAll de la misma ventana, estableciendo el número de puerto deseado en TCP Port:
Una vez realizada estas acciones, será necesario reiniciar el servicio para efectuar los cambios realizados y puedes realizarlo desde el mismo SQL Server Configuration Manager. En el apartado SQL Server Services, haciendo clic derecho en el servicio en cuestión, tendrás la opción Restart en el menú despegable para reiniciar el servicio como aparece en la siguiente captura de pantalla:
Comprobaciones
Para comprobar el funcionamiento del protocolo y verificar el estado del puerto puedes ejecutar la siguiente instrucción:
netstat -onaf | findstr 1433
Como en la captura de pantalla siguiente, debe aparecer el puerto en estado LISTENING y en el caso de haber conexiones también deberían de aparecer:
Luego verifica desde el equipo final si tiene acceso al puerto, en caso negativo verifica de nuevo las reglas de Firewall de Windows y del Firewall panel de Clouding (Cómo crear una regla de firewall). En particular, para el firewall de Windows puedes ejecutar el siguiente comando por CMD para permitir el acceso rápidamente:
netsh advfirewall firewall add rule name="SQL Server Port" dir=in action=allow protocol=TCP localport=1433
Esperamos que este artículo te haya sido de ayuda, si tienes consultas sobre esta u otra cuestión relacionada con tus servidores en Clouding, no dudes en contactar a soporte@clouding.io. ¡Estamos para ayudarte!