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:

  1. Seguridad Estándar
    “Data Source=Aron1; Initial Catalog=pubs; User Id=myUsername; Password=myPassword;”
  2. Conexión Segura
    “Data Source=Aron1; Initial Catalog=pubs; Integrated Security=SSPI;”
  3. Conexión via IP
    “Data Source=190.190.200.100,1433; Network Library=DBMSSOCN; Initial Catalog=pubs; User ID=myUsername; Password=myPassword;”
  4. 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

41 comentarios en “cadenas de conexion desde .NET para SQL Server 2005”

  1. Hola, estoy intentando realizar una conección en ASP.NET, para ello estoy utiizando Visual Studio .NET, pero la cadena de concección que me pasaron desde mi servidor de hosting no me responde, esta cadena es la siguiente:
    “Data Source=whsql-v12.prod.mesa1.secureserver.net;Initial Catalog=DB_102696;User ID=miusuario;Password=mispassword;”

    espero y podas ayudarme. Saludos
    xaviermichel@hotmail.com

  2. Hola Xamier!

    Primero deberías colocar un try catch, para ver cuál es el problema, es decir el servidor no existe, la base de datos no existe, o el usuario o clave no existen.

    Saludos,

  3. Tengo problemas de conexion con studio.net 2002 y sqlserver 2000, me lo marca cuando hago un reporte con crystalReporte hago el diseño llamo la base de datos jalo los compos utilizo el sqlconnection y el sqldataadapter pero no me los reconoce y me marca erro de conexion.

    Ya no se que hacer solo es un reporte con crystal, espero que alguien me pueda ayudar con mi problema de conexion. saludos

  4. Estoy teniendo problemas al intentar conectarme utilizando un alias. El servidor es sql server 2005, y lo tengo en mi propio ordenador.
    Si empleo esta cadena de conexion:
    workstation id=D0302HWPC0156;packet size=4096;user id=usuario;data source=”D0302HWPC0156SQLSERVER”;persist security info=True;initial catalog=EASP_WEB;password=clave
    no tengo ningun problema. Ahora bien, al cambiar el datasource por un nombre de alias que me creo en mi ordenador, me 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 TCP, error: 0 – No se ha podido establecer conexión ya que el equipo de destino ha denegado activamente dicha conexión).
    Para crear el alias he probado con 127.0.0.1, con el nombre de mi equiposqlserver..
    Tengo desactivado el firewall de windows y no tengo ningun router ni nada.

    ¿A que se puede deber?

  5. hola bueno mi duda como es la cadena de conexion para un servidor remoto tengo 12 maquinas en red y una de ellas tienes la base de datos cual seria la cadena de conexion

  6. HE CONSULTADO TU PAGINA PARA VER LA CONEXION Y ME HA FUNCIONADA DE MARAVILLA
    SOLAMENTE QUE ESTOY CONECTANDOME DESDE UNA VERSION DE SQL DEVELOPER EDITION

  7. HE CONSULTADO TU PAGINA PARA VER LA CONEXION Y ME HA FUNCIONADA DE MARAVILLA
    SOLAMENTE QUE ESTOY CONECTANDOME DESDE UNA VERSION DE SQL DEVELOPER EDITION

    “Data Source=SERVIDOR;Initial Catalog=DATABASE;Integrated Security=True”

  8. Hola bueno primera vez q foreo asi q espero no molestar bueno soyestudiante de ing de sistemas y estoy llevando el curso de .NET qusiera saber si ustedes podrian decirme o darme alguna pagina o lugar donde puedo ver mas sobre las diferentes etiquetas del VB.net ya q tengo o estudio el .NET 2005 y quiero usar el sql 2000 agradeceria su ayuda me despido esperando una ayuda ok y bye cdnse

  9. hola es que tengo esta conexion y no me sirve cuando me cuando quiero conectarme a la base de datos desde otro equipo espero me saquen de la duda

    cadena = @”Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=MERIDIANO_SISTEMAS;Data Source=SISTEMASSQLEXPRESS”;

  10. Es posible implementar una coneccion IP con SQL Server 2000? Si es asi, la cadena de coneccion es igual? que capacidades (cursores) soporta? Soporta transacciones con coneccion IP?

  11. Buenos dias Sergio Tarrillo.
    Estoy realmente desesperado, tengo la cadena de conexión bien construida, connectionString=”Data Source=TECNORA14NEXUS;Initial Catalog=TECNORA;Persist Security Info=False; User Id=sa; password=*****”, el problema es que a la hora de abrir una conexión me salta el error 40 de Microsoft, 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)”

    He provado infinidad de cosas y no se que hacer, me puedes sugerir alguna cosa?

  12. tengo una pregunta logre conectar a sqlserver express 2005 pero aunque el stringconnect me devuelve que estoy conectado no logro hacer una consulta…
    este es el string
    “Driver={SQL Server};Server=ip_de_pcSQLEXPRESS;Database=bd;trusted connection=true;”

    es una conexion remonata en sqlserver express
    que me dicen gracias de anticipado

  13. tengo una pregunta logre conectar a sqlserver express 2005 pero aunque el stringconnect me devuelve que estoy conectado no logro hacer una consulta…
    este es el string
    “Driver={SQL Server};Server=ip_de_pcSQLEXPRESS;Database=bd;trusted connection=true;”

    es una conexion remonata en sqlserver express
    que me dicen gracias de anticipado

  14. Hola a todo estoy trabajando en mi tesis con .net 2005 y sql server 2005 y tengo errores en la conexion al servidor….me dice algo sobre el usuario o que no se admite conexion remota o algo ahora no tengo los errores concreto lo siento…agradezco cualquier ayuda…gracias

  15. hola chicos estoy coemnzando a estudiar esto de las cadenas de conecciones necesito cualquiera ayuda qu eme pueda servir para ir al ritmo de todos no se que usar ni cuando estoy en cero podrian ayudarme

  16. Viejo, mi problema es todo, jaja, yo tengo SQL server 2005. lo q no se es si el usuario es el d Windows o el d la conexion de motor d base d datos, ademas en ninguno d los dos tengo contraseña, q hago en ese caso. el Initial Catalog, es el nombre de la base d datos?? Gracias.

  17. Estoy realmente desesperada, tengo la cadena de conexión bien construida, dd name=”BDEXPEDIENTEREGISTROConnectionString3″ connectionString=”Data Source=PNSCWS123;Initial Catalog=sa;User ID=lcban;Password=xxxxx” providerName=”System.Data.SqlClient” />el problema es que a la hora de abrir una conexión me salta el error 40 de Microsoft, 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)”

  18. No sé por donde empezar pero hace cinco meses que no puedo con sql 2005 express todo lo que sale en la web de ayuda lo intenté el error 26 o el error 40 persiste, así es que estoy trabajando con oledb con access enlazado con vb.net 2008.
    Pero quiero actualizarme con sql, lo único que me queda por hacer es desinstalarlo y volverlo a instalar si alguien lo a hecho sin tener problemas envíenme cómo?.
    Saludosss.

  19. Interesante el foro… bueno tuve el error paracedido al de estaban sobre (provider: interface de red sql, error: 26 – error al buscar el servidor o instancia especificado)y como tambien el eror 40; en este caso con sql express y vb.net 2005; lo unico qeu hice es habilitar las conexiones remotas como dice sergio y luego hacer algunas modificaciones en mi cade de conexio aca los dejo. Public Conex As New SqlConnection(“data source=xxxsqlExpress; Initial Catalog=xxx; user id=xx; password=xxx”); espero que sea util…

  20. Hi I need some help for connection string sintax using sql server 2005
    I know that if i use SQl express edition i have to write: server=.sqlExpress
    and if i use sql server 2005 i have to write : server=myServerAdress , (??) ,But i’ve tried with : server=dell2 (name of my computer) or server=sql or server=sql server 2005 or server= Cmydocumentsprogramssql and all of this have failed

  21. bueno hace tiempo que no programa en visual.net empece con 2003 y resien estoy con 2005 aun asi hay varias formas , saque esto del guille hasta un solo punto a

    ‘——————

    Try

    Dim Conn As SqlConnection = New SqlConnection(“Data Source=(local)SQLEXPRESS;Initial Catalog=MIBASE;Integrated Security=True”)
    Conn.Open()

    Dim sSel As String = “SELECT * FROM TABLA”

    Dim da As SqlDataAdapter
    Dim dt As New DataTable

    da = New SqlDataAdapter(sSel, Conn)
    da.Fill(dt)

    Me.DataGridView1.DataSource = dt
    ‘Me.DataGridView1.DataBind()
    ‘Me.DataGridView1.DataGridViewControlCollection()
    LabelInfo.Text = String.Format(“Total datos en la tabla: {0}”, dt.Rows.Count)

    Catch ex As Exception
    ‘LabelInfo.Text = “Error: ” & ex.Message

    End Try
    ‘ Me.ReportViewer1.RefreshReport()

    ‘———-

    solamente agrequen un label y un DataGridView1 al formulario ,, saludos

    zeroyevi@hotmail.com

    si alguien me ayuda o necesita ayuda

  22. hola gracias estoy trabajando con vb express y con sql express tbn y no podia conectarlos
    ya que ponia como primer parametro en dim cn as newsqlconnection “server=(local)”,
    pero ahora con “Data Source=(local)SQLEXPRESS”

    gracias

  23. Hola!
    Quisiera saber que tecnica de encriptacion puedo usar para establecer una consulta desde una aplicacion en C# a un PC con una BD en SQL Server.
    Pasa que utilizo un sniffer en mi red y logro capturarlas consultas con todas las contraseñas y usuarios.
    Si alguien puede ayudarme!…Gracias.

  24. @Dan, para las conexiones en red sólo debes colocar el nombre del servidor en tu cadena.

    @SABRINA, podría ser por las credenciales.

    @Antonio, cómo declaraste el alias, podría funcionar si usas el archivo .htdocs

    @Dennis, en tu servidor debes habilitar el puerto de SQL, por otro lado deberías contar con una IP privada para poder salir.

    @alexis, gracias por el enlace.

    @Luis, para Oracle hay otro tema con respecto al tsnnames, pero revisa esta página: http://www.connectionstrings.com/oracle

    @Skyville, etiquetas? si te refieres al contenido que puede tener un connection string peudes visitar: http://msdn.microsoft.com/es-es/library/system.data.sqlclient.sqlconnection.connectionstring%28VS.80%29.aspx

    @julio, podría ser por los permisos de RED.

    @Juan Gonzalez, gracias.

    @Carlos, si puede hablitar por IP (previas configuraciones), y soporta todo lo que dispone SQL Server.

    @Pascual, debes habilitar las conexiones remotas (por defecto no viene en SQL Express, y SQL Developer Edition)

    @Ramon Brito, podría ser por permisos en la base de datos.

    @jhon3h, debes habilitar las conexiones remotas para SQL Express.

    @Mnuñez, revisa el siguiente enlace: http://www.microsoft.com/spanish/msdn/spain/cursosonline.mspx

    @Fernando, si initial catalog es la base de datos. Si no tienes los usaurios, vuelve a instalar SQL

    @lcban, @Esteban, debes instalar las conexiones remotas: http://geeks.ms/blogs/sergiotarrillo/archive/2006/11/27/6779.aspx

    @gaby, puedes tomar uno de los ejemplos de arriba.

    @Caesar, Revisa los siguientes artículos: http://geeks.ms/blogs/palvarez/archive/2006/11/24/paranoid-cifrado-de-datos-en-sql-server-2005.aspx, http://geeks.ms/blogs/ozonicco/archive/2007/09/19/191-c-243-mo-cifrar-los-backups-files-en-sql-server-2005.aspx.

    Saludos,

  25. Gracias Por la Informacion esta muy util,

    tenia el mismo problema q todos al conectar asp.net con sql server 2005,

    el problema era la cadena de conexion
    siguiendo este tuturial q recomendaron mas arriba funciono

    http://www.mistrucos.net/truco-sql-server-2005-crear-una-cadena-de-conexion-692_1.htm

    al final de probar la conexion , y abrir el archivo con el block de notas, se genero una cadena de conexion , copie la cadena el codigo fuente de mi programa y funciono.

    aunque le tuve que quitar el primer atributo a la cadena “Provider”

    todo es cosa de que pruebas la cadena de conexion adecuada para tu aplicacion

  26. hola soy nuevo en esto de las bases de datos por internet y la vdd es que estoy trabando en un sistema con base de datos sql server 2008 y C# y quisiera saber como puedo crear un servidor o como puedo acer para que otras computadoras con internet entren a mi base de datos centras osea el servidor… alguien conoce alguna pagina para aprender como crear servidores y todo eso

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *