martes, 1 de marzo de 2005

Conexiones remotas en SQL Server 2005 Express - P1

A quien no le ha salido un error que dice

Error mientras se establecía la conexión con el servidor. Al conectar con SQL Server 2005, el error se puede producir porque la configuración predeterminada de SQL Server no admite conexiones remotas. (provider: Proveedor de canalizaciones con nombre, error: 40 - No se pudo abrir una conexión con SQL Server)

Y otros errores del mismo tipo.

Pues bien esto se debe a que nuestros amigos de Microsoft nos dan un programa configurado por defecto para que no acepte conexiones remotas, afortunadamente esto se puede cambiar y aquí están los pasos para hacerlo.

Antes que nada debo decirles que tengo instalados el “SQL Server 2005 Express”, y el “SQL Server Management Studio Express” además de que estoy trabajando en el “Windows XP Profesional”.



Habilitar conexiones remotas para SQL Server 2005 Developer Edición o SQL Server 2005 Express

Debe habilitar conexiones remotas para cada instancia de SQL Server 2005 que desea conectarse desde un equipo remoto. Para ello, siga estos pasos:

  • Haga clic en Inicio, seleccione Programas, Microsoft SQL Server 2005, Herramientas de configuración y haga clic en Configuración de área de superficie de SQL Server.
  • En la página Configuración de superficie de SQL Server 2005, haga clic en Configuración de superficie para servicios y conexiones.
  • En la página Configuración de superficie para servicios y conexiones, expanda el Motor de base de datos, haga clic en Conexiones remotas, haga clic en Conexiones locales y remotas, haga clic en el protocolo adecuado para habilitar para su entorno y a continuación, haga clic en Aplicar

Nota :Haga clic en Aceptar cuando reciba el mensaje siguiente:
Cambios en la conexión de configuración no tendrán efecto hasta que reinicie el servicio motor de base de datos.
  • En la página Configuración de superficie para servicios y conexiones, expanda Motor de base de datos, haga clic en Servicio, haga clic en Detener, espere hasta que el MSSQLSERVER detiene el servicio y, a continuación, haga clic en Iniciar para reiniciar el servicio MSSQLSERVER.





Habilitar el servicio de SQL Server Browser

Si está ejecutando SQL Server 2005 mediante un nombre de instancia y la cadena de conexión no utiliza un número de puerto TCP/IP específico, debe habilitar el servicio de SQL Server Browser permitir conexiones remotas. Por ejemplo, SQL Server 2005 Express se instala con un nombre de instancia predeterminada de Computer Name\SQLEXPRESS. Sólo se necesita para habilitar el servicio de SQL Server Browser una vez, independientemente de cuántas instancias de SQL Server 2005 se ejecuta. Para habilitar el servicio de SQL Server Browser, siga estos pasos.

Importante: Estos pasos pueden aumentar su riesgo de seguridad. Estos pasos también pueden hacer que su equipo o su red sean más vulnerables a los ataques por usuarios malintencionados o de software malintencionado como virus. Recomendamos el proceso que este artículo se describe a permitir que los programas funcionen como están diseñados o implementar capacidades específicas del programa. Antes de realizarlos, recomendamos que evalúe los riesgos asociados a la implementación de este proceso en su entorno concreto. Si decide implementar este proceso, tome las medidas adicionales oportunas para proteger su sistema. Recomendamos que utilice este proceso sólo si realmente necesita este proceso.
  • Haga clic en Inicio, seleccione Programas, Microsoft SQL Server 2005, Herramientas de configuración y haga clic en Configuración de área de superficie de SQL Server.
  • En la página Configuración de superficie de SQL Server 2005, haga clic en Configuración de superficie para servicios y conexiones.
  • En la página Configuración de superficie para servicios y conexiones, haga clic en SQL Server Browser, haga clic en Automático para el Tipo de inicio y, a continuación, haga clic en Aplicar.
    Nota: Al hacer clic en la opción Automática, el servicio de SQL Server Browser se inicia automáticamente cada vez que inicia Microsoft Windows.


  • Haga clic en Inicio y, a continuación, haga clic en Aceptar.
Nota: Cuando se ejecuta el servicio Explorador de SQL Server en un equipo, el equipo muestra los nombres de instancia y la información de conexión para cada instancia de SQL Server que se ejecuta en el equipo. Puede reducir este riesgo habilitando no el servicio de SQL Server Browser y conectándose a la instancia de SQL Server directamente a través de un puerto TCP asignado. Conectarse directamente a una instancia de SQL Server a través de un puerto TCP está fuera del ámbito de este artículo. Para obtener más información sobre el servidor de SQL Server Browser y conectarse a una instancia de SQL Server, vea los temas siguientes en los libros en pantalla de SQL Server:
  • Servicio SQL Server Browser
  • Conectar el motor de base de datos SQL Server
  • Configuración de red de cliente


Crear excepciones en Firewall de Windows

Estos pasos se aplican a la versión de Firewall de Windows que se incluye en Windows XP Service Pack 2 (SP2) y en Windows Server 2003. Si utiliza un sistema de otro firewall, consulte la documentación firewall para obtener más información.

Si está ejecutando un servidor de seguridad en el equipo que ejecuta SQL Server 2005, las conexiones externas a SQL Server 2005 se bloqueará a menos que SQL Server 2005 y el servicio de SQL Server Browser se pueden comunicar a través del firewall. Debe crear una excepción para cada instancia de SQL Server 2005 que desee que acepte conexiones remotas y una excepción para el servicio Explorador de SQL Server.

SQL Server 2005 utiliza un identificador de instancia como parte de la ruta de acceso al instalar sus archivos de programa. Para crear una excepción para cada instancia de SQL Server, debe identificar el identificador de instancia correcto. Para obtener un identificador de instancia, siga estos pasos:

  • Haga clic en Inicio, seleccione Programas, Microsoft SQL Server 2005, Herramientas de configuración y, a continuación, haga clic en Administrador de configuración de SQL Server.
  • En el Administrador de configuración de SQL Server, haga clic en el servicio de SQL Server Browser en el panel derecho, haga clic con el botón secundario en el nombre de instancia en la ventana principal y, a continuación, haga clic en Propiedades.
  • En la página de Propiedades de explorador de SQL Server, haga clic en la ficha Avanzadas, busque el identificador de instancia en la lista propiedad y, a continuación, haga clic en Aceptar.



Para abrir Firewall de Windows, haga clic en Inicio, haga clic en Ejecutar, escriba firewall.cpl y haga clic en Aceptar.



Crear una excepción para SQL Server 2005 en Firewall de Windows

Para crear una excepción para SQL Server 2005 en Firewall de Windows, siga estos pasos:
  • En Firewall de Windows, haga clic en la ficha Excepciones y, a continuación, haga clic en Agregar programa
  • En la ventana Agregar un programa, haga clic en Examinar.
  • Haga clic en el programa ejecutable C:\Archivos de programa\Microsoft SQL Server\MSSQL.1\MSSQL\Binn\sqlservr.exe, haga clic en Abrir y, a continuación, haga clic en Aceptar.
Nota: La ruta de acceso puede ser diferente dependiendo de dónde está instalado SQL Server 2005. MSSQL.1 es un marcador de posición para el identificador de instancia que obtuvo en el paso 3 del procedimiento anterior.
  • Repita los pasos 1 a 3 para cada instancia de SQL Server 2005 que necesita una excepción.


Crear una excepción para el servicio Explorador de SQL Server en Firewall de Windows

Para crear una excepción para el servicio Explorador de SQL Server en Firewall de Windows, siga estos pasos:
  • En Firewall de Windows, haga clic en la ficha Excepciones y, a continuación, haga clic en Agregar programa.
  • En la ventana Agregar un programa, haga clic en Examinar.
  • Haga clic en el programa ejecutable C:\ Archivos de programa \Microsoft SQL Server\90\Shared\sqlbrowser.exe, haga clic en Abrir y, a continuación, haga clic en Aceptar.
Nota: La ruta de acceso puede ser diferente dependiendo de dónde está instalado SQL Server 2005.

Tomado de:
http://support.microsoft.com/kb/914277

6 comentarios:

Anónimo dijo...

muy bueno....:)l

Anónimo dijo...

que bueno tu blog. es es problema que tengo... pero me sale este error al inicio..."No se pudo cargar el archivo o ensamblado 'Microsoft.SqlServer.WmiEnum, Version = 9.0.242.0, Culture = neutral, PublicKeyToken = 89845dcd8080cc91' ni una de sus dependencias. El sistema no puede encontrar el archivo especificado. (SQLSAC)" no se que hacer :(

RAZIEL2099 dijo...

Realmente no soy un experto en SQLServer, pero al parecer tu problema tiene que ver con una mala instalación, si fuera tu lo volvería a instalar.

Tambien podrías consultar en ForosdelWeb

http://www.forosdelweb.com/f87/no-consigo-conexion-remota-sql-server-2005-express-530842/

Anónimo dijo...

Espero que puedas tam publicar como se realiza la conexion con el Visual Studio pues es una parte importante para tener una conexion exitosa... personalemte he seguido ya odos los pasos pero en el cliente (osea donde esta la Aplicacion de Visual).. la conexión no es posible pues no encuentra la Base si bien el visual encuentra la computadora que es el servidor de Base de datos .. no encuentra la base como te dije espero puedas ayudarnos ... Paul y Daniela...........
Gracias Por darte tiempo de leer estos comentarios en tu blokkk ... saludos

MAVERICKC45 dijo...

Aquí un enlace a como realizar una simple conexión local. Y unos ejemplos ya desarrollados
http://raziel2099.blogspot.com/2011/06/conexion-sql-server-express-con-asp-y.html

Bien… Cuando comencé a hacer el proyecto que me pidieron, yo no sabia que SQL Server Express 2005 tendría restricciones para realizar conexiones remotas. Me tomo casi dos semanas averiguar por que no podía realizar una conexión remota. Incluso pensé en tirar la toalla, pero investigando en san Google encontré que alguien lo había podido realizar (no le creí al principio).

Siguiendo sus indicaciones logre hacer una conexión remota en mi computadora y me alegre por ello, pero cuando intente hacerlo hacia otra computadora conectados en LAN, valla desilusión me lleve al ver que de nuevo me salía el maldito mismo error.

Intente cambiando cadenas de conexión, intente activando los servicios que se explican aquí… pero no daba con la raíz del problema.

Finalmente me decidí a seguir estrictamente los pasos y cree un usuario y contraseña para el SQL Server Express en la maquina servidor (algo que yo no había hecho). Para ello use la herramienta “SQL Management Studio Express Edición 2005”

También hay que configurar correctamente la red haciendo que pertenezcan al mismo grupo de trabajo, y otras cosas como añadir excepciones al firewall en la maquina servidor, etc.

En realidad me ayude de varias personas y recopile toda la información puesto que no a todos les salía el mismo error.

Solo me cabe resaltar que lo probé en una red LAN (red casera, local, etc). Por lo que no sabría si responde igual en maquinas que no esta configuradas en LAN.

MAVERICKC45 dijo...

También añado que en ese entonces no conocía el motor de base de datos Firebird, el cual trabaja idéntico tanto en paginas ASPX como en aplicaciones de escritorio.

Cuando lo instalas en el servidor, ya esta configurado para aceptar conexiones remotas; solo se necesita la DLL correcta para realizar las conexiones, y para crear las tablas el IBManager

Si me dieran a elegir entre SQL Server Express y Firebird sin duda me olvidaría de hacer toda esa maroma para configurar el primero.

Si te animas a pasarte a Firebird y Visual.Net solo necesitarías estas 3 cosas

La librería para Net
FirebirdSql.Data.FirebirdClient.dll

El servidor y cliente al mismo tiempo
Firebird-2.1.4.18393_0_Win32.exe

Entorno visual para crear y administrar las bases de datos
IbManagerLiteSetup.exe

Los puedes encontrar en San google con esos nombres.