¿Cómo acceder a una base de datos de SQL Server desde otra computadora conectada al mismo grupo de trabajo?

11

He creado una aplicación C # que usa una base de datos SQL Server. Tengo otras computadoras conectadas conmigo y entre sí en un grupo de trabajo. He compartido mi aplicación C # con otros. Cuando abren la aplicación, reciben el 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

Pero la aplicación funciona bien en mi PC. La cadena de conexión que estoy usando es

Data Source=ASHISHPC1\SQLEXPRESS;Initial Catalog=ACW;User ID=ash159;Password=ashish159

que se almacena en un .configarchivo.

La aplicación funciona bien en mi PC. ¿Que debo hacer? He habilitado el TCP / IP en el servidor pero el mismo error persiste. ¿Algún cambio en la cadena de conexión o algo más?

Comunidad
fuente
1
intente usar la dirección IP para 'fuente de datos'
Mitch Wheat
1
Intente desactivar el Firewall de Windows ... también consulte technet.microsoft.com/en-us/library/hh231672.aspx . Esto debería funcionar para usted.
3
No es necesario desactivar el Firewall de Windows. ¡Deje de propagar ese mito! Vea mi respuesta a continuación.
Jon Seigel

Respuestas:

17

Hay dos niveles de seguridad que deben cambiarse para permitir el acceso remoto.

  1. Configuración del servidor SQL . Por defecto en las ediciones Express, Developer y Enteprise Evaluation, la conexión por el protocolo TCP / IP está desactivada . Habilite esto usando el Administrador de configuración de SQL Server.

  2. Firewall de Windows . Si bien deshabilitar el firewall por completo funcionará para este componente, hacerlo no es una práctica recomendada de seguridad (ni es obligatorio). (Nota: en esta sección, supongo una configuración predeterminada . Hay muchas configuraciones que se pueden cambiar que afectan levemente estos pasos).

    Hay dos casos según el tipo de instancia de SQL Server a la que se está conectando:

    1. Instancia predeterminada (conectar solo por nombre de computadora). Agregue una regla de entrada entrante en el puerto TCP 1433 o en el servicio del motor de base de datos.

    2. Instancia con nombre (conectar por nombre de computadora + nombre de instancia). Agregue una regla de entrada entrante en el puerto UDP 1434 para acceder al servicio del navegador SQL. Agregue una regla de entrada entrante en el servicio del motor de base de datos.

Este procedimiento está completamente documentado aquí , o puede verme explicar y luego recorrer la configuración de una instancia con nombre aquí .

Jon Seigel
fuente
0

Debe establecer la configuración de red correcta en su servidor SQL: TCP / IP activo en el servidor SQL También asegúrese de que su servicio de navegador del servidor se esté ejecutando, porque si se detiene, no puede acceder al SQL- Servidor.

BendEg
fuente
0

Asegúrese de que el servicio sqlbrowser esté activado como lo menciona bendeg, y que UDP 1434 esté abierto en su máquina para que los clientes puedan acceder al sqlbrowser para resolver el nombre. Abra también el puerto TCP / IP de la instancia con nombre.

Para encontrar el puerto de su instancia, conéctese utilizando el prefijo tcp: en Management Studio de la siguiente manera: tcp: ASHISHPC1 \ SQLEXPRESS y el resultado de la consulta a continuación debería ser el puerto que necesita exponer a los clientes de su grupo de trabajo.

SELECT local_tcp_port FROM sys.dm_exec_connections WHERE session_id = @@SPID
Robert Gannon
fuente
-1

Desactivé el firewall de Windows para Home Network y funcionó bien ... Gracias a todos ... :)

usuario27553
fuente
55
Si esta fue su pregunta, debe iniciar sesión aquí con las mismas credenciales que usó en el sitio original ( Desbordamiento de pila ) para que pueda obtener la propiedad de la pregunta aquí.
jcolebrand