cadenas de conexion desde .NET para SQL Server 2005
[2010-Abr-30] NOTA: Si están recibiendo el error: "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". Por favor, revisen la siguiente entrada: habilitando (o administrando) las conexiones remotas en SQL Server
2005.
si es que estamos usando SQLExpress, y estamos creando una aplicación .NET para el acceso a datos, hay que tener algunas consideraciones adicionales a la hora de conectarnos a la base de datos.
Dentro de las aplicaciones Windows, con VS2005, hay la opción de agregar un Ítem SQL Database, pero sólo está disponible si has instalado SQLExpress. En este caso la cadena de conexión ha cambiado ligeramente. Como nos mantenemos actualizados? visitando: http://www.connectionstrings.com/.
Aquí pondré algunos resúmenes de las cadenas para SQL Server 2005, desde .NET:
- Seguridad Estándar
"Data Source=Aron1; Initial Catalog=pubs; User Id=myUsername; Password=myPassword;"
- Conexión Segura
"Data Source=Aron1; Initial Catalog=pubs; Integrated Security=SSPI;"
- Conexión via IP
"Data Source=190.190.200.100,1433; Network Library=DBMSSOCN; Initial Catalog=pubs; User ID=myUsername; Password=myPassword;"
- Adjuntando una base de datos, para conectarnos a SQL Express (caso mencionado arriba)
"Server=.\SQLExpress; AttachDbFilename=|DataDirectory|mydbfile.mdf; Database=dbname; Trusted_Connection=Yes;"
Ahora con respecto a las conexiones hay algunas cosas que hay que tener en cuenta, y mejores prácticas que aplicar:
En el caso 01 y 03, la conexión al contener el usuario y password, hace que este sea altamente inseguro, imaginemos en el hipotético de los casos que alguien tiene acceso a la cadena conexión, tendrá automáticamente el login de SQL, bueno las cosas que pueda hacer dependerá del usuario que la encontró. En estos casos hay ciertas prácticas que debemos seguir, como es la encriptación de archivos de configuración, que es generalmente donde se guardan las conexiones, aunque algunos prefieran guardarlo en el Regedit:
Con respecto a la cadena de conexión para SQLExpress, he recibido algunas consultas sobre donde se debe colocar el archivo, en la raíz de la aplicación o en el bin?, ya que ha estado generando algunos problemillas. En el post que hice usando SQL Express, el asistente genero la ruta absoluta del archivo, lo ideal es trabajar con la relativa para hacer que la aplicación sea portable. Para más detalles podemos revisar los siguientes post del equipo de Smart Client:
Saludos,
Post cruzado desde starrillo blog