Sql server en red

Actualmente estoy desarrollando un proyecto .NET Winform que actúa contra una BD SQL Server en local. Para ello, en el app. Config he creado una entrada donde guardo la cadena de conexión de la BD, por ejemplo:
<add key="conexion" value="Data Source=localhost;Database=bdtelecontrol;Integrated Security=SSPI"/>
Además, he instalado el SQL Server 2000 (configuración LOCAL) en el equipo donde tengo la aplicación.
Mi pregunta es, si quiero poner la base de datos en red, ¿qué pasos tengo que realizar? ¿Es necesario que esté instalado el SQL Server en todos los equipos o es suficiente con que esté en el servidor? ¿Cómo se instala el SQL Server en red? ¿Qué tendría que cambiar de mi cadena de conexión en "Source" donde ahora pongo localhost, me podrías enviar un ejemplo?
1

1 respuesta

Respuesta
1
Si tu equipo, en donde tienes instalado el SQL en forma local va ser el servidor de la empresa, no tienes que instalar SQL, peo si el servidor va a ser otro equipo, entonces debes instalar el SQL en ese equipo, para que SQL quede en red no hay que hacer nada, solo instalarlo, y en lo posible que ese equipo tenga un dirección IP fija, no dinámica.
Para que los otros PC encuentren el servidor SQL la cadena de conexión debe indicar en "Data Source", el nombre del Equipo en donde se encuentra instalado el SQL o la IP del equipo en donde se encuentra instalado el SQL, el resto de parámetros de la cadena deconexion son iguales.
Si tienes dudas con respecto a la cadena de conexión puedes ir a www.connectionstrings.com allí se encuentran la mayoría de las cadenas de conexión a las diferentes bases de datos que existen-.
Hola,
Muchas gracias por la respuesta, ya me queda más claro. Pero no consigo conectarme a un servidor SQL server en red.
Tengo el SQL Server 2000 instalado en mi equipo (lo he configurado como local sin dominio y lo he llamado NORA). En otro equipo, he intentado conectarme a la base de datos que he instalado en mi equipo a través de la aplicación que he desarrollado (cambiando la cadena de conexión) y no me conecta. Entonces, se me ha ocurrido instalar también el SqlServer 2000 en el otro equipo, a ver si pinchando en Administrador de Servicios SQL Server, me aparece el servido NORA, pero ni siquiera me aparece. ¿Qué estoy haciendo mal? Ya no sé qué más probar. TE agradecería cualquier ayuda.
Muchas gracias.
Un saludo,
Nora
Hola,
Creo que he conseguido algo:
Tengo instalado el Sql server 2000 en mi equipo(NORA) y en otro(AMAIA). He añadido en el SQl server de mi equipo NORA, un nuevo registro de servidor SQL server que apunta al de AMAIA, pudiendo acceder a la base de datos en red (esto antes no me funcionaba, creo que era por los usuarios del servidor y de la base de datos y la seguridad, he añadido el usuario invitado y seguridad mixta( Windows y SQQL server)). Ya sé que para acceder en red no es necesario instalar el Sql server en varios equipo, únicamente en el servidor, pero lo estoy haciendo así para ver si me da alguna pista de por qué no funciona.
Bueno, al conseguir lo anterior pensaba que ya me iba a funcionar la aplicación, pero NOOOO! Ya estoy desesperada! Finaliza el tiempo de espera sin poder realizar la conexión a la base de datos. Mi código es el siguiente:
SqlConnection conn = new SqlConnection();
conn.ConnectionString = "Data Source=AMAIA;Initial Catalog=BDTELECONTROL;Integrated Security=True;"
conn.Open();
¿Por qué sucede esto? Ya no se me ocurren más cosas, ya he probado con todas las cadenas de conexión que me has enviado Por favor, si puedes ayudarme te lo agradecería.
Muchas gracias.
Un saludo,
Nora
La cedena de conexión que estas utilizando es de seguridad integrada de windows, esto quiere decir que los usuarios de los PC deben estar en un directorio activo, debe existir un dominio en la red para que cualquier usuario de la red pueda acceder a la base de datos.
Si no tienes este ambiente, debes crear un usuario en SQL que te permita acceder a la base de datos y especificarlo en la cadena de conexión. Esta ultima opción es al mejor pues así restringues el acceso a la base de datos por ese usuario de sQL.
Hola!
No entiendo... pero si consigo conectarme manualmente desde mi SQlserver a la base de datos de AMAIA, ¿por qué no me funciona por código?
Por otra parte, he hecho otra prueba: He creado en el config una nueva entrada de tipo "cadena de conexión", donde selecciono el servidor AMAIA, pero no me aparece ninguna Base de Datos que pueda seleccionar de este servidor, ¿por qué? ¿Tiene qué ver con que no pueda conectarme por código?
Por otra parte, para probar lo que me propones, ¿cómo puedo crear un usuario SQL que me permita acceder a la base de datos? ¿Y cómo lo especifico en la cadena de conexión, poniendo User Id=? ¿Me podrías poner un ejemplo?
Muchas gracias de antemano por tu interés.
Un saludo,
Nora
Coloca como nombre del servidor SQL la IP del equipo en donde se encuentra instalado.
¿Te refieres a que abra el administrador corporativo en el equipo que se llama AMAIA y cambie el nombre del servido sql server "AMAIA" por la IP del equipo, por ejemplo, 192.168.1.45? No entiendo.
Muchas gracias
En la cadena de conexión al servidor SQL del programa, cambia el nombre del servidor, por la IP del equipo en donde se encuentre instalado el SQL.
Buenas,
He probado a cambiar la cadena de conexión poniendo la IP y sigue sin funcionar!
"Data Source=192.168.1.45,1433;Initial Catalog=BDTELECONTROL;Integrated Security=True;"
La verdad es que no entiendo qué sucede, porque:
1. Desde, por ejemplo, el Excel de mi ordenador puedo importarme los datos de una tabla de la base de datos BDTELECONTROL del sql server del Pc de AMAIA. (Supongo que el excel lo hace con el proveedor de datos .NET framework para OLE DB)
2. En cambio, si intento crear una cadena de conexión en el config desde el visual studio, poniendo :
      - Origen de datos: Microsoft SQL server
      - Proveedor de datos:Microsoft .NET Framework para servidor SQL Server(que es el que utilizo en el programa con la clase SQlClient), no me muestra ninguna Base de Datos.
Por cierto, he preguntado y no hay ningún dominio creado y además las IPs son dinámicas. Pero antes de hacer cada prueba ciompruebo que la IP sea la correcta.
Ya no sé qué más hacer, ¿se te ocurre algo? ¿Te ha ocurrido alguna vez algo parecido?
Muchas gracias por tu atención.
Un saludo,
Nora
Hol,
La recomendación es que el servidor SQL tenga una IP Fija para evitar ese problema, como no tienes un dominio, me imagino que tampoco tienes DNS que es la resolución de nombres del dominio por eso no debe encontrarlo el proveedor de datos sql de .NET pues la idea es que por seguridad estas cosas deben darse.
Entonces, ¿si no tengo ni dominio ni IP fija, no puedo probar mi programa a ver si conecta correctamente con el SQL Server en red? Pero entonces, no entiendo por qué razón puedo, desde Excel, ¿importarme una tabla de la base de datos del servidor servidor en red?
Esas preguntas son más para un IT que paa mi que me dedico a hacer programas, la verdad npo se que puede estar pasando pero es un problema de tu red.
La otra solución que te doy es que intntes usando una conexión ODBC a ver si así el proveedor de datos de .NET si encuenta el servidor de SQL.
Buenas,
Por fin he conseguido conectarme desde mi programa a la base de datos en red! El problema era el TIMEOUT! He añadido a mi cadena de conexión "connect timeout=45" y ya funciona!
Muchas gracias por tu ayuda.
Ub saludo,
Nora

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas