Habilite conexiones remotas para SQL Server Express 2012
Acabo de instalar SQL Server Express 2012 en mi servidor doméstico. Estoy intentando conectarme desde Visual Studio 2012 desde mi PC de escritorio y aparece repetidamente el conocido error:
Se produjo un error relacionado con la red o específico de la instancia al establecer una conexión con SQL Server. El servidor no se encontró o no estaba accesible. Verifique que el nombre de la instancia sea correcto y que SQL Server esté configurado para permitir conexiones remotas. (proveedor: Proveedor de canalizaciones con nombre, error: 40 - No se pudo abrir una conexión a SQL Server)
Lo que he hecho para intentar solucionar este problema:
- Ejecute el Administrador de configuración de SQL Server en el servidor y habilite el Explorador de SQL Server
- Agregue una excepción de Firewall de Windows en el servidor para TCP, puertos 1433 y 1434 en la subred local.
- Verifique que tengo un inicio de sesión en la instancia de SQL Server para el usuario con el que inicié sesión en el escritorio.
- Verifique que esté usando la autenticación de Windows en la instancia de SQL Server.
- Reinicie repetidamente SQL Server y todo el maldito servidor.
- Sácame todo el pelo.
¿Cómo puedo hacer que SQL Server 2012 Express permita conexiones remotas?
Bueno, me alegro de haberlo preguntado . La solución que finalmente descubrí estaba aquí:
¿Cómo configuro SQL Server Express para permitir conexiones tcp/ip remotas en el puerto 1433?
- Ejecute el Administrador de configuración de SQL Server.
- Vaya a Configuración de red de SQL Server > Protocolos para SQLEXPRESS.
- Asegúrese de que TCP/IP esté habilitado.
Hasta ahora, todo bien y totalmente esperado. Pero entonces:
- Haga clic derecho en TCP/IP y seleccione Propiedades .
- Verifique que, en IP2, la dirección IP esté configurada en la dirección IP de la computadora en la subred local.
- Desplácese hacia abajo hasta IPAll.
- Asegúrese de que Puertos dinámicos TCP esté en blanco . (El mío estaba configurado en algún número de puerto de 5 dígitos).
- Asegúrese de que el puerto TCP esté configurado en 1433 . (El mío estaba en blanco).
(Además, si sigue estos pasos, no es necesario habilitar el navegador SQL Server y solo necesita permitir el puerto 1433, no el 1434).
Estos cinco pasos adicionales son algo que no recuerdo haber tenido que hacer en una versión anterior de SQL Server, Express o no. Parecen haber sido necesarios porque estoy usando una instancia con nombre (myservername\SQLEXPRESS) en el servidor en lugar de una instancia predeterminada. Mira aquí:
Configurar un servidor para escuchar en un puerto TCP específico (Administrador de configuración de SQL Server)
La forma correcta de conectarse a SQL Server remoto (sin abrir el puerto UDP 1434 y habilitar el navegador SQL Server) es usar ip y puerto en lugar de instancia con nombre .
Usar ip y puerto en lugar de una instancia con nombre también es más seguro, ya que reduce el área de superficie de ataque.
Quizás 2 imágenes hablan más que 2000 palabras...
Este método utiliza el puerto especificado (creo que esto es lo que la mayoría de la gente quiere).
Este método requiere abrir el puerto UDP 1434 y ejecutar el navegador SQL Server.