Cómo establecer la cadena de conexión de SQL Server?

Estoy desarrollando una aplicación C # simple, me gustaría saber esto: cuando conecto mi aplicación a SQL Server en mi PC, conozco la cadena de conexión (nombre del servidor, contraseña, etc.), pero cuando la conecto a otra PC, la cadena de conexión de SQL Server es diferente. ¿Hay una cuenta común en SQL Server que tenga una cuenta predeterminada que pueda conectarse? He oído hablar de una cuenta sa en SQL Server, ¿qué es sa ?

// .NET DataProvider – Conexión estándar con nombre de usuario y contraseña

 using System.Data.SqlClient; SqlConnection conn = new SqlConnection(); conn.ConnectionString = "Data Source=ServerName;" + "Initial Catalog=DataBaseName;" + "User id=UserName;" + "Password=Secret;"; conn.Open(); 

// .NET DataProvider – Conexión de confianza

 SqlConnection conn = new SqlConnection(); conn.ConnectionString = "Data Source=ServerName;" + "Initial Catalog=DataBaseName;" + "Integrated Security=SSPI;"; conn.Open(); 

Proveedor de datos .NET – Ruta relativa predeterminada – Conexión estándar

  using System.Data.SqlClient; var conn = new SqlConnection(); conn.ConnectionString = "Data Source=.\SQLExpress;" + "User Instance=true;" + "User Id=UserName;" + "Password=Secret;" + "AttachDbFilename=|DataDirectory|DataBaseName.mdf;"conn.Open(); 

Proveedor de datos .NET – Ruta relativa predeterminada – Conexión de confianza

  using System.Data.SqlClient; var conn = new SqlConnection(); conn.ConnectionString = "Data Source=.\SQLExpress;" + "User Instance=true;" + "Integrated Security=true;" + "AttachDbFilename=|DataDirectory|DataBaseName.mdf;" conn.Open(); 

Proveedor de datos .NET – Ruta relativa personalizada – Conexión estándar

 using System.Data.SqlClient; AppDomain.CurrentDomain.SetData( "DataDirectory", "C:\MyPath\"); var conn = new SqlConnection(); conn.ConnectionString = "Data Source=.\SQLExpress;" + "User Instance=true;" + "User Id=UserName;" + "Password=Secret;" + "AttachDbFilename=|DataDirectory|DataBaseName.mdf;" conn.Open(); 

Proveedor de datos .NET – Ruta relativa personalizada – Conexión de confianza

  using System.Data.SqlClient; AppDomain.CurrentDomain.SetData( "DataDirectory", "C:\MyPath\"); var conn = new SqlConnection(); conn.ConnectionString = "Data Source=.\SQLExpress;" + "User Instance=true;" + "Integrated Security=true;" + "AttachDbFilename=|DataDirectory|DataBaseName.mdf;" conn.Open(); 

En realidad, puede usar la clase SqlConnectionStringBuilder para construir su cadena de conexión . Para construir la cadena de conexión , necesita instanciar un objeto de ese SqlConnectionStringBuilder y establecer sus propiedades con los parámetros que usa para conectarse a la Base de datos. A continuación, puede obtener la cadena de conexión de la propiedad ConnectionString del objeto SqlConnectionStringBuilder , como se muestra en este ejemplo:

Por ejemplo:

  SqlConnectionStringBuilder sConnB = new SqlConnectionStringBuilder () { DataSource = "ServerName", InitialCatalog = "DatabaseName", UserID = "UserName", Password = "UserPassword" }.ConnectionString SqlConnection conn = new SqlConnection(sConnB.ConnectionString); 

Puede usar el new operador para hacer eso directamente.

Por ejemplo:

 SqlConnection conn = new SqlConnection( new SqlConnectionStringBuilder () { DataSource = "ServerName", InitialCatalog = "DatabaseName", UserID = "UserName", Password = "UserPassword" }.ConnectionString ); 

Puede agregar más parámetros para construir su cadena de conexión . Recuerde que los parámetros están definidos por los valores establecidos en las propiedades del objeto SqlConnectionStringBuilder .

También puede obtener la cadena de conexión de la base de datos desde la conexión de Microsoft Visual Studio con el DB adjunto. Cuando selecciona la base de datos, en el panel de propiedades se muestra la cadena de conexión .

La lista completa de propiedades de la clase SqlConnectionStringBuilder se enumera en esta página del sitio de Microsoft MSDN.

Acerca del usuario predeterminado de SQL Server, sa significa “administrador del sistema” y su contraseña varía según la versión de SQL Server. En esta página , puede ver cómo varía la contraseña.

Usuario de SQL Server 2008 / R2 Express: sa Contraseña: [contraseña en blanco – deje el campo vacío para conectarse]

Usuario de SQL Server 201x Express: sa Contraseña: Password123

Usuario web o estándar de SQL Server 20xx: sa Contraseña: será la misma que su contraseña de administrador o usuario root en el momento en que se aprovisionó el VDS.

Puede iniciar sesión con un usuario sa en esta ventana de inicio de sesión al inicio del Administrador de bases de datos de SQL Server. Como en esta imagen:

Ejemplo de inicio de sesión

Son una serie de cosas de las que preocuparse cuando se conecta a SQL Server en otra máquina.

  • Dirección de host / IP de la máquina
  • Catálogo inicial (nombre de la base de datos)
  • Nombre de usuario / contraseña válidos

Con mucha frecuencia, el servidor SQL se puede ejecutar como intancia predeterminada, lo que significa que simplemente puede especificar el nombre de host / dirección IP, pero puede encontrar un escenario donde se ejecuta como una instancia con nombre (Sql Express, por ejemplo). En este escenario, deberá especificar el nombre de host \ nombre de instancia.

Debe comprender que un servidor de base de datos o DBA no querría que cualquiera pudiera conectarse o modificar los contenidos del servidor. Este es el propósito de las cuentas de seguridad. Si un solo nombre de usuario / pwd funcionara en cualquier máquina, no proporcionaría protección. Esa “sa” cosa de la que ha oído hablar, no funciona con SQL Server 2005, 2008 o 2012. Sin embargo, no estoy seguro acerca de las versiones anteriores. Creo que en algún momento de los primeros días de SQL Server, el nombre de usuario predeterminado y pwd solían ser sa / sa, pero ese ya no es el caso.

Para su información, la seguridad de la base de datos y los roles son mucho más complicados ahora. Es posible que desee examinar los detalles de la autenticación basada en Windows. Si su SQL Server está configurado para ello, no necesita ningún nombre de usuario / pwd en la cadena de conexión para conectarse. Todo lo que necesita cambiar es el nombre de la máquina del servidor y la misma cadena de conexión funcionará con ambas máquinas, dado que ambas tienen el mismo nombre de db, por supuesto.

Puede utilizar la autenticación de Windows, si su servidor está en el dominio o la autenticación Sql. Sa – es un administrador del sistema, la cuenta raíz para la autentificación del servidor SQL. Pero es una mala práctica utilizarla para conectar a sus clientes. Debe crear sus propias cuentas y usarlas para conectarse a su SQL. En cada conexión establece el inicio de sesión de la cuenta , su contraseña y la base de datos predeterminada , que desea conectar.

sa es una cuenta de administrador del sistema que viene con el servidor sql por defecto. Como ya sabrá, puede usar dos formas de iniciar sesión en SQL Server.

captura de pantalla de SQL Server Management Studio

Por lo tanto, hay cadenas de conexión adecuadas para cada escenario (como la autenticación de Windows, localdb, etc.). Use https://msdn.microsoft.com/en-us/library/jj653752(v=vs.110).aspx#sqlserver para construir su cadena de conexión. Estas son tags XML. Solo necesitas valor de connectionString

Puede usar la cadena de conexión de la siguiente manera y solo necesita agregar el nombre de su base de datos.

 string connetionString = "Data Source=.;Initial Catalog=DB name;Integrated Security=True;MultipleActiveResultSets=True";