Habilitar conexiones remotas para SQL Server Express 2012

Acabo de instalar SQL Server Express 2012 en mi servidor doméstico. Intento conectarme a él desde Visual Studio 2012 desde mi PC de escritorio, y repetidamente obtengo el error conocido:

Se ha producido 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 tratar de arreglar esto:

  • 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 en el que estoy conectado como en el escritorio.
  • Verifique que estoy usando la Autenticación de Windows en la instancia de SQL Server.
  • Reinicie repetidamente SQL Server y todo el servidor dang.
  • Saca todo mi pelo.

¿Cómo puedo obtener SQL Server 2012 Express para permitir conexiones remotas?

Bueno, me alegro de haber preguntado . La solución que finalmente descubrí estaba aquí:

¿Cómo configuro SQL Server Express para permitir conexiones remotas tcp / ip en el puerto 1433?

  1. Ejecute el Administrador de configuración de SQL Server.
  2. Vaya a Configuración de red de SQL Server> Protocolos para SQLEXPRESS.
  3. Asegúrese de que TCP / IP esté habilitado.

Hasta ahora, tan bueno y completamente esperado. Pero entonces:

  1. Haga clic derecho en TCP / IP y seleccione Propiedades .
  2. Verifique que, en IP2, la Dirección IP esté configurada en la dirección IP de la computadora en la subred local.
  3. Desplázate hacia abajo hasta IPAll.
  4. Asegúrese de que TCP Dynamic Ports esté en blanco . (El mío se estableció en un número de puerto de 5 dígitos).
  5. 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 nunca en una versión anterior de SQL Server, Express u otro. 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 al Servidor SQL remoto (sin abrir el puerto UDP 1434 y habilitar el Navegador del Servidor SQL) es usar el puerto IP y el puerto en lugar de la instancia con nombre .

Usar ip y puerto en lugar de instancia con nombre también es más seguro, ya que reduce el área de superficie de ataque.

Tal vez 2 imágenes hablan 2000 palabras …

Este método usa el puerto especificado (esto es lo que la mayoría de la gente quiere, creo).

enter image description here

Este método requiere abrir el puerto UDP 1434 y el navegador SQL Server en ejecución.

enter image description here

Una cosa más…

Kyralessa proporciona una gran información, pero tengo otra cosa que agregar cuando estaba perplejo, incluso después de este artículo.

En SQL Server Configuración de red> Protocolos para servidor> TCP / IP habilitado. Haga clic con el botón derecho en TCP / IP y elija propiedades. En las direcciones IP, debe establecer Habilitado en Sí para cada tipo de conexión que esté utilizando.

enter image description here

Puedes usar esto para resolver este problema:

Vaya a INICIO> EJECUTAR y ejecute CLICONFG.EXE.

El protocolo de Named Pipes será el primero en la lista. Desmójalo y promueva TCP / IP.

Pruebe la aplicación a fondo.

Espero esta ayuda.

También puedes configurar

Escuchar todo NO

en el diálogo de protocolo luego en la dirección IP IP1 (decir)

establecer habilitado en Sí,

definir su dirección IP,

establecer TCP Dynamic en blanco y

Puerto TCP a 1433 (o lo que sea)

Tuve este problema recientemente. Agosto 2015

Resuelto abriendo el Administrador de configuración de SQL Server

  • Configuración de red de SQL Server -> Protocolos para SQLEXPRESS
  • Propiedades en TCP / IP -> pestaña Direcciones de IP
  • Todo se mantiene por defecto, solo establece IPALL: puerto TCP a 1433

Se puede conectar con el Administrador del Servidor SQL a la máquina: [dirección de host], 1433

Ejemplo:

enter image description here

Este artículo me ayudó …

Cómo habilitar conexiones remotas en SQL Server

Todo en SQL Server estaba configurado, mi problema era que el firewall estaba bloqueando el puerto 1433

En mi instalación de SQL Server 2012 Developer Edition, instalada con la configuración predeterminada, solo tuve que cargar el Administrador de configuración de SQL Server -> Configuración de red de SQL Server -> Protocolos para MSSQLSERVER y cambiar TCP / IP de Deshabilitado a Habilitado.

Tuve que agregar una regla de puerto de entrada de firewall para abrir el puerto UDP 1434. Este es el servidor Sql que el navegador escucha.

Prefiero la forma de “Rosdi Kasim” ya que eso no requiere configuración detallada en la IP.

Definitivamente lo olvidaré nuevamente cuando intente subir otro servidor de nuevo.

Keep It Simple Stupid (KISS) simplemente habilite el servicio Sql Server Browser, luego agregue el \ SQLEXPRESS detrás de la IP cuando conecta el servidor.

El uso directo de IP sin “\ SQLEXPRESS” fue mi punto de falla ya que no usa el puerto predeterminado.

Gracias.

Tuve el mismo problema con la instancia con nombre SQL Server 2014 instalada localmente. La conexión con FQDN\InstanceName fallaría, mientras me conectaba utilizando solo mi hostname\InstanceName funcionó. Por ejemplo: conectar usando mycomputername\sql2014 funcionó, pero usar mycomputername.mydomain.org\sql2014 no. El DNS se resolvió correctamente, TCP / IP se habilitó dentro del Administrador de configuración de SQL, se agregaron las reglas de Firewall de Windows (y luego se apagó el firewall para comprobar que no estaba bloqueando nada), pero ninguno de ellos solucionó el problema.

Finalmente, tuve que iniciar el servicio ” SQL Server Browser ” en SQL Server y eso solucionó el problema de conectividad.

Nunca me había dado cuenta de que el servicio del navegador de SQL Server en realidad ayudaba al SQL Server a realizar las conexiones; Tenía la impresión de que simplemente ayudó a rellenar los menús desplegables cuando hizo clic en “buscar más” servidores para conectarse, pero realmente ayuda a alinear las solicitudes del cliente con el número de puerto correcto para usar, si el número de puerto no está explícitamente asignado (similar a cómo los enlaces de sitios web ayudan a aliviar el mismo problema en un servidor web de IIS que aloja varios sitios web).

Este elemento de conexión es lo que me dio la pista sobre el servicio del navegador de SQL Server: https://connect.microsoft.com/SQLServer/feedback/details/589901/unable-to-connect-on-localhost-using-fqdn-machine- nombre

  • cuando utiliza wstst05 \ sqlexpress como nombre de servidor, el código de cliente separa el nombre de la máquina del nombre de instancia y el wstst05 se compara con el nombre de netbios. No veo ningún problema para que coincidan y la conexión se considera local. A partir de ahí, recuperamos la información necesaria SIN contactar al navegador SQL y conectamos a la instancia de SQL a través de la memoria compartida sin ningún problema.
  • cuando utiliza wstst05.capatest.local \ sqlexpress, el código del cliente no compara el nombre (wstst05.capatest.local) con el nombre de netbios (wstst05) y considera que la conexión es “remota”. Esto es por diseño y definitivamente consideraremos mejorar esto en el futuro. De todos modos, debido a que considera la conexión remota y el hecho de que es una instancia con nombre, el cliente decide que necesita usar SQLBrowser para la resolución del nombre. Intenta ponerse en contacto con el navegador SQL en wstst05.capatest.local (puerto UDP 1434) y aparentemente esa parte falla. De ahí el error que obtienes.

El motivo del servicio “Explorador de SQL Server” de TechNet (énfasis agregado por mí): https://technet.microsoft.com/en-us/library/ms181087(v=sql.120).aspx

Desde la sección “Usar el navegador de SQL Server”:

Si el servicio del navegador SQL Server no se está ejecutando, aún puede conectarse a SQL Server si proporciona el número de puerto correcto o canalización con nombre. Por ejemplo, puede conectarse a la instancia predeterminada de SQL Server con TCP / IP si se está ejecutando en el puerto 1433. Sin embargo, si el servicio del navegador SQL Server no se está ejecutando, las siguientes conexiones no funcionan :

  • Cualquier componente que intente conectarse a una instancia con nombre sin especificar por completo todos los parámetros (como el puerto TCP / IP o la canalización con nombre) .
  • Cualquier componente que genere o pase información de servidor / instancia que más tarde podría ser utilizada por otros componentes para volver a conectarse.
  • Conectarse a una instancia con nombre sin proporcionar el número de puerto o canalización.
  • DAC a una instancia con nombre o la instancia predeterminada si no se usa el puerto TCP / IP 1433.
  • El servicio de redireccionamiento OLAP.
  • Enumeración de servidores en SQL Server Management Studio, Enterprise Manager o Query Analyzer.

Si está utilizando SQL Server en un escenario cliente-servidor (por ejemplo, cuando su aplicación está accediendo a SQL Server en una red), si detiene o deshabilita el servicio del navegador SQL Server, debe asignar un número de puerto específico a cada instancia y escriba el código de su aplicación cliente para usar siempre ese número de puerto. Este enfoque tiene los siguientes problemas :

  • Debe actualizar y mantener el código de la aplicación cliente para asegurarse de que se está conectando al puerto correcto.
  • El puerto que elija para cada instancia puede ser utilizado por otro servicio o aplicación en el servidor, haciendo que la instancia de SQL Server no esté disponible.

Y más información del mismo artículo de la sección “Cómo funciona el navegador SQL Server”:

Como solo una instancia de SQL Server puede usar un puerto o una tubería , se asignan diferentes números de puerto y nombres de canalización para las instancias con nombre, incluido SQL Server Express. De forma predeterminada, cuando está habilitado, las instancias con nombre y SQL Server Express están configuradas para usar puertos dynamics, es decir, se asigna un puerto disponible cuando se inicia SQL Server. Si lo desea, se puede asignar un puerto específico a una instancia de SQL Server. Al conectarse, los clientes pueden especificar un puerto específico; pero si el puerto se asigna dinámicamente, el número de puerto puede cambiar cada vez que se reinicie SQL Server, de modo que el cliente desconoce el número de puerto correcto. … Cuando los clientes de SQL Server solicitan recursos de SQL Server, la biblioteca de red del cliente envía un mensaje UDP al servidor utilizando el puerto 1434. El navegador de SQL Server responde con el puerto TCP / IP o el canal con nombre de la instancia solicitada. La biblioteca de red en la aplicación cliente completa la conexión enviando una solicitud al servidor utilizando el puerto o el conducto con nombre de la instancia deseada

Tuve que agregar el puerto a través de Configuration Manager y agregar el número de puerto en mi conexión sql [host] \ [nombre de instancia de db], 1433

Tenga en cuenta que, (coma) entre nombre de instancia y puerto

¡Tuve un problema diferente al de todas las respuestas mencionadas!

Debería comenzar diciendo que lo tenía en Visual Studio, y no en SQL Server Express, pero la solución debería ser exactamente la misma.

Bueno, Dios, en realidad es muy simple y tal vez un poco tonto. Cuando traté de crear una base de datos y Visual Studio sugirió el nombre del SQL Server, me dio mi nombre de usuario de Windows y, dado que en realidad es el nombre del servidor, lo busqué.

En realidad, en realidad era mi nombre de usuario de Windows + \SQLEXPRESS . Si no cambiaste ninguna configuración, probablemente también sea tuya. Si funciona, deja de leer; esta es mi respuesta. Si no funciona, tal vez el nombre sea diferente.

Si, como yo, solo tienes este problema en Visual Studio para verificar lo que es tuyo, sigue estos pasos:

  1. Abra el icono de SQL Server Management Studio .
  2. Si no ve su servidor (acoplado a la izquierda por defecto), presione F8 o vaya a Ver -> Explorador de objetos .
  3. Haga clic derecho sobre el nombre del servidor y elija Propiedades (El último elemento)
  4. En la parte inferior izquierda, puede ver el nombre real de su servidor en ” Servidor ” (no en la conexión, pero arriba).

¡Este es el nombre del servidor y esto es a lo que debe intentar conectarse! ¡No es lo que sugiere Visual Studio!

En mi caso, la base de datos se ejecutaba en un puerto no estándar. Compruebe que el puerto que está conectando es el mismo que el puerto en el que se está ejecutando la base de datos. Si hay más instancias de SQL Server, marque la correcta.

Todo lo que necesita hacer es abrir el puerto correspondiente en el firewall del servidor.

¡Una cosa más para comprobar es que ha escrito la instancia nombrada correctamente!

Este artículo es muy útil para solucionar problemas de conexión: Cómo solucionar problemas de conexión al motor de base de datos de SQL Server

Intereting Posts