Cómo crear un alias para una instancia de SQL Server con nombre


8

En mi computadora de desarrollador tengo una instancia de SQL Server llamada developer_2005 . En los archivos de configuración de recursos de una aplicación C # que estamos creando, el nombre de la instancia se establece en foobar (no realmente, sino solo como un ejemplo). Entonces, cuando ejecuto la aplicación (en depuración o nueva versión), intenta conectarse a un Servidor SQL en localhost, llamado foobar .

Me pregunto si es posible crear un alias o algo así, de modo que la aplicación realmente encuentre un SQL Server en localhost llamado foobar , pero en realidad se conecta a la instancia llamada developer_2005 .

La cadena de conexión en el archivo de configuración de la aplicación es Fuente de datos = localhost \ foobar; Catálogo inicial = barfoo; Seguridad integrada = Verdadero con el nombre del proveedor System.Data.SqlClient . Si cambio localhost \ foobar a localhost \ developer_2005 , la aplicación se puede conectar como debería. ¿Cómo puedo crear un alias para que no tenga que cambiar la cadena en el archivo?

Intenté, en SQL Server Management Studio, crear un registro de servidor con el nombre de servidor registrado "localhost \ developer", pero esto no pareció hacer nada bueno. Ni siquiera estoy seguro de lo que realmente hizo ... Pero luego descubrí el Administrador de configuración de SQL Server \ SQL Native Client COnfiguration \ Aliases. Y supongo que aquí es donde radica la solución. Pero no puedo entender cómo agregar uno nuevo ... Al crear uno nuevo, tengo que proporcionar el nombre de alias, el número de puerto, el protocolo y el servidor, y realmente no tengo ni idea de qué poner cualquiera de ellos.

Respuestas:


6

Nombre de alias: foobar (el nombre que le gustaría usar)

Nombre del servidor: el nombre real de su computadora o la dirección IP (no localhost o 127.0.0.1)

Protocolo: TCP / IP

Puerto: el predeterminado (1433)

Asegúrese de que el protocolo TCP / IP esté habilitado (deshabilitado de manera predeterminada)

Cambie su cadena de conexión para usar su nuevo alias (Fuente de datos = foobar)


El nombre del servidor, localhost , es correcto. Es el nombre de la instancia con nombre para el que necesito crear un alias.
Svish

Entonces debe usar localhost \ instancename como el nombre del servidor.
Massimo

¿Qué pasa con el nombre de alias? ¿Debo usar localhost \ developer_2005 como nombre del servidor y localhost \ foobar como alias? ¿Eso funcionará?
Svish

Lo comprobé mejor ... parece que realmente puedes hacer eso. Al menos en SQL Server 2008 (no sé si funcionará en 2005).
Massimo

Edité mi respuesta, inténtalo.
Massimo

1

Tiene razón, lo que debe hacer es definir un nuevo alias en la configuración de Native Client.

  • Nombre de alias: el alias que desea crear
  • Nombre del servidor: el nombre real del servidor
  • Protocolo: TCP / IP
  • Puerto: el predeterminado (1433)

Prueba esto:

  • Nombre de alias: localhost \ foobar
  • Nombre del servidor: localhost \ developer_2005
  • Protocolo: TCP / IP
  • Puerto: 1433

Y ahí es donde estoy. ¿Pero qué pongo en esos campos? Yo no lo entiendo muy bien ...
Svish

La cadena de conexión en el archivo de configuración es Fuente de datos = localhost \ foobar; Catálogo inicial = barfoo; Seguridad integrada = Verdadero con el nombre del proveedor System.Data.SqlClient . Para que se conecte correctamente, debo cambiar localhost \ foobar a localhost \ developer_2005 . ¿Cómo puedo crear un alias para no tener que hacer eso?
Svish

Esto no se puede hacer; su cadena de conexión está buscando una instancia con nombre llamada foobar , los alias solo se pueden usar como nombres de nivel superior, no como si fueran instancias con nombre.
Massimo

Entonces, ¿no hay forma de resolver esto, aparte de cambiar la cadena de conexión en la aplicación?
Svish

Lo comprobé mejor ... parece que realmente puedes hacer eso. Al menos en SQL Server 2008 (no sé si funcionará en 2005).
Massimo
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.