Puede recibir un mensaje de error de conexión al intentar conectarse a una instancia de SQL Server 2000 o SQL Server 7.0 que se instaló después de instalar SQL Server 2005

Síntomas

Puede recibir un mensaje de error de conexión si se cumplen las condiciones siguientes:
  • Instalar Microsoft SQL Server 2000 o SQL Server 7.0 después de instalar SQL Server 2005.
  • Intente conectarse a una instancia creada por SQL Server 2000 o SQL Server 7.0.
Este problema se produce si la cadena de conexión no incluye la información específica de cada protocolo, aunque todavía se esté ejecutando el servicio Explorador de SQL Server.

En este escenario, la información específica de protocolo depende de la información devuelta por el servidor. Por ejemplo, puede recibir el siguiente mensaje de error cuando se conecta a una instancia mediante la utilidad Sqlcmd (Sqlcmd.exe):
Interfaces de red SQL: Error Buscar servidor/instancia especificado [xFFFFFFFF].
Sqlcmd: Error: Microsoft SQL Native Client: el cliente no puede establecer conexión.
Sqlcmd: Error: Microsoft SQL Native Client: tiempo de espera de inicio de sesión caducado.

Causa

Cuando intenta conectarse a una instancia de SQL Server 2000 o SQL Server 7.0, el servicio Explorador de SQL Server (Sqlbrowser) intentará obtener la información necesaria del protocolo del registro de Microsoft Windows para transmitir al cliente. Por lo tanto, el servicio Explorador de SQL Server debe tener permisos suficientes para leer el registro de Windows adecuado para la instancia.

Al configurar SQL Server 2005, se modifican las claves del registro para todas las instancias existentes para habilitar el servicio Explorador de SQL Server leer la información de protocolo requerido. Sin embargo, si instala una instancia de SQL Server 2000 o de SQL Server 7.0 después de configurar SQL Server 2005, no se establecen los permisos del Registro correctos. Los permisos sólo se modifican cuando se instala el servicio Explorador de SQL Server. En concreto, si la cuenta de inicio del servicio SQL Server Browser no es una cuenta de administrador, esta cuenta no tenga los permisos de acceso necesarios para leer las claves correspondientes de la instancia.


Nota: En SQL Server 2000, el servicio de SQL Server identifica los extremos de conexión del servidor. SQL Server 2005 reemplaza esa función con el servicio Explorador de SQL Server. Si instala SQL Server 2005 en un equipo que también está ejecutando SQL Server 2000, debe instalar el Service Pack 3 (SP3) de SQL Server 2000, SQL Server 2000 SP3a o SQL Server 2000 SP4 en el equipo.

Solución alternativa

Importante: esta sección, el método o la tarea contiene pasos que indican cómo modificar el registro. Sin embargo, pueden producirse problemas graves si modifica incorrectamente el registro. Por lo tanto, asegúrese de que sigue estos pasos cuidadosamente. Para una mayor protección, haga una copia de seguridad del registro antes de modificarlo. Entonces, puede restaurar el registro si se produce un problema. Para obtener más información acerca de cómo hacer copia de seguridad y restaurar el registro, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:
322756 cómo hacer copia de seguridad y restaurar el registro en Windows
Puede utilizar uno de los métodos siguientes para solucionar temporalmente este problema.

Modificar el registro para conceder permisos de lectura a teclas específicas

Para cada instancia de SQL Server 2000 que se instaló después de instalar SQL Server 2005, siga estos pasos:
  1. Haga clic en Inicio, haga clic en
    Ejecutar, escriba regedity, a continuación, haga clic en
    OK.
  2. Busque la siguiente subclave del registro:
    HKEY_LOCAL_MACHINE\Software\Microsoft\Microsoft SQL Server\InstanceName
    En esta subclave,
    InstanceName es el nombre de la instancia de SQL Server 2000.

    Nota: Si instaló SQL Server 2000 como instancia predeterminada, la subclave del registro es la siguiente:
    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSSQLServer\MSSQLServer
  3. En el menú Edición , haga clic en
    Permisos.
  4. Haga clic en Agregar, tipo
    SQLServer2005SQLBrowserUser o tipo SQLServer2005SQLBrowserUser$ NombreDeEquipoy, a continuación, haga clic en
    OK.

    Nota: El nombre de grupo de cuenta SQLServer2005SQLBrowserUser sea SQLServer2005SQLBrowserUser$ NombreDeEquipo en el equipo. Puede encontrar este nombre de grupo en usuarios y grupos locales en Administración de equipos. En este paso, nombreDeEquipo en SQLServer2005SQLBrowserUser$ NombreDeEquipo es el nombre de su equipo.
  5. Haga clic para activar la casilla de verificación lectura en la lista de permisos para esta cuenta de usuario y, a continuación, haga clic en
    OK.
  6. Salga del Editor del registro y, a continuación, reinicie el servicio SQL Server Browser.
Nota: Las claves secundarias deben heredar los permisos. Si los permisos no se heredan, tiene que conceder explícitamente el permiso de lectura a SQLServer2005SQLBrowserUser o a SQLServer2005SQLBrowserUser$ NombreDeEquipo para las claves siguientes, si están presentes:
  • HKEY_LOCAL_MACHINE\Software\Microsoft\Microsoft SQL Server\ < nombreInstancia > \CurrentVersion
  • HKEY_LOCAL_MACHINE\Software\Microsoft\Microsoft SQL Server\ < nombreInstancia > \SuperSocketNetLib
  • HKEY_LOCAL_MACHINE\Software\Microsoft\Microsoft SQL Server\ < nombreInstancia > \Cluster
Nota: En esta subclave,
InstanceName es el nombre de la instancia de SQL Server 2000.

Si la subclave del registro HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\ < nombreInstancia > \SuperSocketNetLib no es heredada, debe modificar manualmente las claves subyacentes para esta subclave del registro.

Nota: SQL Server 7.0 no tiene instancias con nombre. Por lo tanto, la clave del registro correspondiente debe haber heredado el permiso apropiado de la subclave del registro HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSSQLServer\MSSQLServer . Sin embargo, si no se ha heredado el permiso, debe establecer manualmente el permiso.

Especificar explícitamente la información de conexión en la cadena de conexión

Cuando se conecta a una instancia de SQL Server 2000 o de SQL Server 7.0 desde el cliente, se puede especificar explícitamente la información de conexión en la cadena de conexión. Especificar esta información para que la información de conexión no es dependiente de la información que devuelve el servidor. Por ejemplo, puede conectarse a la instancia usando el comando es similar al comando siguiente cuando utilice la utilidad Sqlcmd.
sqlcmd –S tcp:yourhost,1500

Estado

Microsoft ha confirmado que se trata de un problema de los productos de Microsoft que se enumeran en la sección "Aplicable a".
Propiedades

Id. de artículo: 905618 - Última revisión: 17 ene. 2017 - Revisión: 1

Comentarios