Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Cada proveedor de datos ADO.NET tiene un objeto Connection que hereda de ConnectionString y una propiedad DbConnection específica del proveedor. La sintaxis de la cadena de conexión específica de cada proveedor se indica en su propiedad ConnectionString. En la tabla siguiente se enumeran Microsoft. Data.SqlClient y tres proveedores incluidos en .NET Framework.
| Proveedor de datos | Descripción |
|---|---|
| Microsoft.Data.SqlClient | Proporciona acceso a los datos para Microsoft SQL Server a través del paquete NuGet Microsoft.Data.SqlClient. Para obtener más información acerca de la sintaxis de la cadena de conexión, vea ConnectionString. |
| System.Data.OleDb | Proporciona acceso a datos para orígenes de datos expuestos mediante OLE DB. Para obtener más información acerca de la sintaxis de la cadena de conexión, vea ConnectionString. |
| System.Data.Odbc | Proporciona acceso a datos para fuentes de datos expuestas mediante ODBC. Para obtener más información acerca de la sintaxis de la cadena de conexión, vea ConnectionString. |
| System.Data.OracleClient | Proporciona acceso de datos para Oracle versión 8.1.7 o superior. Para obtener más información acerca de la sintaxis de la cadena de conexión, vea ConnectionString. |
Generadores de cadenas de conexión
Use el generador de cadenas de conexión para el proveedor de datos.
- SqlConnectionStringBuilder
- OleDbConnectionStringBuilder
- OdbcConnectionStringBuilder
- OracleConnectionStringBuilder
Los generadores de cadenas de conexión permiten construir cadenas de conexión válidas sintácticamente en tiempo de ejecución, por lo que no es necesario concatenar manualmente valores de cadena de conexión en el código. Para obtener más información, vea Generadores de cadenas de conexión.
Autenticación de Windows
La autenticación de Windows (en ocasiones denominada seguridad integrada) se puede usar para conectarse a orígenes de datos que sean compatibles. La sintaxis utilizada en la cadena de conexión varía dependiendo del proveedor. En la tabla siguiente se muestra la sintaxis de autenticación de Windows usada con estos proveedores de datos.
| Proveedor | Sintaxis |
|---|---|
SqlClient |
Integrated Security=true;-- or --Integrated Security=SSPI; |
OleDb |
Integrated Security=SSPI; |
Odbc |
Trusted_Connection=yes; |
OracleClient |
Integrated Security=yes; |
Nota:
Integrated Security=true produce una excepción cuando se usa con el proveedor OleDb.
Importante
Microsoft recomienda usar el flujo de autenticación más seguro disponible. Si se conecta a Azure SQL, el método de autenticación recomendado es Identidades administradas para recursos de Azure.
Cadenas de conexión de SqlClient
La sintaxis de una cadena de conexión de SqlConnection se documenta en la propiedad SqlConnection.ConnectionString. Puede usar la propiedad ConnectionString para obtener o establecer una cadena de conexión para una base de datos de SQL Server. La mayoría de las palabras clave de cadenas de conexión se corresponden también con las propiedades de SqlConnectionStringBuilder.
Importante
La configuración predeterminada de la palabra clave Persist Security Info es false. Si se establece en true o yes, permite obtener información de seguridad confidencial de la conexión, incluidos el identificador de usuario y la contraseña, una vez abierta la conexión. Mantenga el valor Persist Security Info establecido en false para garantizar que los orígenes que no sean de confianza no puedan tener acceso a información confidencial de la cadena de conexión.
Autenticación de Windows con SqlClient
Cada una de las siguientes formas de sintaxis usa autenticación de Windows para conectarse a la base de datos AdventureWorks en el servidor especificado.
"Persist Security Info=False;Integrated Security=true;Initial Catalog=AdventureWorks;Server=<server>;Encrypt=true"
"Persist Security Info=False;Integrated Security=SSPI;database=AdventureWorks;server=<server>;Encrypt=true"
"Persist Security Info=False;Trusted_Connection=True;database=AdventureWorks;server=<server>;Encrypt=true"
Importante
Microsoft recomienda usar el flujo de autenticación más seguro disponible. Si se conecta a Azure SQL, el método de autenticación recomendado es Identidades administradas para recursos de Azure.
Autenticación de SQL Server con SqlClient
Es preferible utilizar la autenticación de Windows para conectarse a SQL Server (de forma local). No obstante, si se requiere autenticación de SQL Server, deberá utilizar la siguiente sintaxis para especificar un nombre de usuario y una contraseña. En este ejemplo, los asteriscos representan un nombre de usuario y una contraseña válidos.
"Persist Security Info=False;User ID=*****;Password=*****;Initial Catalog=AdventureWorks;Server=MySqlServer"
Cuando se conecte a Azure SQL Database o a Azure SQL Data Warehouse y proporcione un inicio de sesión con el formato user@servername, asegúrese de que el valor servername del inicio de sesión coincida con el valor proporcionado para Server=.
Nota:
La autenticación de Windows tiene prioridad sobre los inicios de sesión de SQL Server. Si indica ambos Integrated Security=true, así como un nombre de usuario y una contraseña, se omitirán el nombre de usuario y la contraseña y se utilizará la autenticación de Windows.
Importante
Microsoft recomienda usar el flujo de autenticación más seguro disponible. Si se conecta a Azure SQL, el método de autenticación recomendado es Identidades administradas para recursos de Azure.
Conexión a una instancia con nombre de SQL Server
Para conectarse a una instancia con nombre de SQL Server, utilice la sintaxis nombre de servidor\nombre de instancia.
"Data Source=<server>\\<instance>;Encrypt=true;"
A la hora de crear una cadena de conexión, también puede establecer la propiedad DataSource del SqlConnectionStringBuilder en el nombre de instancia. La propiedad DataSource de un objeto SqlConnection es de solo lectura.
Cambios en la versión del sistema de tipos
La palabra clave Type System Version en un objeto SqlConnection.ConnectionString especifica la representación del lado cliente de los tipos de SQL Server. Para obtener más información sobre la palabra clave Type System Version, vea SqlConnection.ConnectionString.
Conexión y asociación a instancias de usuario de SQL Server Express
Las instancias de usuario son una característica de SQL Server Express. Permiten que un usuario que ejecuta una cuenta de Windows local y con privilegios mínimos adjunte y ejecute una base de datos de SQL Server sin necesidad de tener privilegios administrativos. Una instancia de usuario se ejecuta con las credenciales de Windows del usuario, no como un servicio.
Para obtener más información sobre cómo trabajar con instancias de usuario, vea Instancias de usuario de SQL Server Express.
Uso de TrustServerCertificate
Con Encrypt=true, TrustServerCertificate=true cifra la conexión, pero omite la validación del certificado del servidor. Mantenga TrustServerCertificate=false para las conexiones de producción y configure un certificado de servidor verificable.
"TrustServerCertificate=true;"
Caution
Si omite la validación de certificados, el cliente no puede comprobar la identidad del servidor. Con Encrypt=Strict, Microsoft. Data.SqlClient siempre valida el certificado de servidor e ignora TrustServerCertificate.
Habilitación del cifrado
Microsoft. Data.SqlClient tiene Encrypt=Mandatorycomo valor predeterminado , equivalente a Encrypt=truey TrustServerCertificate=false. El cliente requiere cifrado y valida el certificado de servidor. Si el certificado no es de confianza o no coincide con el nombre del servidor, la conexión falla.
Para las conexiones remotas, especifique Encrypt=true y configure un certificado de servidor que el cliente considere de confianza. Si migra desde System.Data.SqlClient, no suponga que sus valores predeterminados de cifrado se aplican a Microsoft.Data.SqlClient. Para obtener más información, consulte Cifrado y validación de certificados en Microsoft.Data.SqlClient.
Cadenas de conexión OleDb
La propiedad ConnectionString de un objeto OleDbConnection permite obtener o establecer una cadena de conexión para un origen de datos OLE DB, como Microsoft Access. También puede crear una OleDb cadena de conexión en tiempo de ejecución mediante la OleDbConnectionStringBuilder clase .
Sintaxis de cadenas de conexión OleDb
Para una cadena de conexión OleDbConnection, debe proporcionar un nombre de proveedor. La siguiente cadena de conexión conecta a una base de datos Microsoft Access mediante el proveedor Jet. Tenga en cuenta que las palabras clave User ID y Password son opcionales si la base de datos no está protegida (opción predeterminada).
Provider=Microsoft.Jet.OLEDB.4.0; Data Source=d:\Northwind.mdb;User ID=Admin;Password=;
Si la base de datos Jet está protegida mediante la seguridad de nivel de usuario, debe proporcionar la ubicación del archivo de información de grupo de trabajo (.mdw). El archivo de información del grupo de trabajo se utiliza para validar las credenciales presentadas en la cadena de conexión.
Provider=Microsoft.Jet.OLEDB.4.0;Data Source=d:\Northwind.mdb;Jet OLEDB:System Database=d:\NorthwindSystem.mdw;User ID=*****;Password=*****;
Importante
Es posible proporcionar información de conexión para un OleDbConnection en un archivo de vínculo de datos universal (UDL); sin embargo, debe evitar hacerlo. Los archivos UDL no están cifrados y exponen la información de cadena de conexión en texto sin cifrar. No se puede proteger un archivo UDL mediante .NET Framework, ya que se trata de un recurso basado en un archivo externo a la aplicación. Los archivos UDL no son compatibles con SqlClient.
Importante
Microsoft recomienda usar el flujo de autenticación más seguro disponible. Si se conecta a Azure SQL, el método de autenticación recomendado es Identidades administradas para recursos de Azure.
Usar DataDirectory para conectarse a Access/Jet
DataDirectory no es exclusivo de SqlClient. También se puede utilizar con los proveedores de datos de .NET System.Data.OleDb y System.Data.Odbc. La siguiente cadena OleDbConnection de ejemplo muestra la sintaxis necesaria para conectarse a la base de datos Northwind.mdb situada en la carpeta app_data de la aplicación. La base de datos del sistema (System.mdw) también está almacenada en esa ubicación.
"Provider=Microsoft.Jet.OLEDB.4.0;
Data Source=|DataDirectory|\Northwind.mdb;
Jet OLEDB:System Database=|DataDirectory|\System.mdw;"
Importante
No es necesario especificar la ubicación de la base de datos del sistema en la cadena de conexión si la base de datos Access/Jet no está protegida. La seguridad está desactivada de forma predeterminada y todos los usuarios se conectan como el usuario Admin integrado, con una contraseña en blanco. Aun cuando la seguridad a nivel de usuario esté correctamente implementada, una base de datos Jet sigue siendo vulnerable a los ataques. Por eso no se recomienda almacenar información delicada en una base de datos Access/Jet a causa de la fragilidad inherente a su esquema de seguridad basado en archivos.
Conectar a Excel
Se utiliza el proveedor Microsoft Jet para conectarse a un libro de Excel. En la siguiente cadena de conexión, la palabra clave Extended Properties establece propiedades que son específicas de Excel. "HDR=Yes;" indica que la primera fila contiene nombres de columna, no datos, e "IMEX=1;" indica al controlador que siempre lea las columnas de datos "entremezclados" como texto.
Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\MyExcel.xls;Extended Properties=""Excel 8.0;HDR=Yes;IMEX=1""
Tenga en cuenta que el carácter de comilla doble necesario en Extended Properties también debe ir incluido entre comillas dobles.
Sintaxis de la cadena de conexión del proveedor de estructura de datos
Utilice las palabras clave Provider y Proveedor de datos cuando use el proveedor de formas de datos de Microsoft. En el siguiente ejemplo se utiliza el proveedor de formas para conectarse a una instancia local de SQL Server.
"Provider=MSDataShape;Data Provider=SQLOLEDB;Data Source=(local);Initial Catalog=pubs;Integrated Security=SSPI;"
Importante
Microsoft recomienda usar el flujo de autenticación más seguro disponible. Si se conecta a Azure SQL, el método de autenticación recomendado es Identidades administradas para recursos de Azure.
Cadenas de conexión ODBC
La propiedad ConnectionString de una OdbcConnection permite obtener o establecer una cadena de conexión para un origen de datos OLE DB. Las cadenas de conexión Odbc también son compatibles con OdbcConnectionStringBuilder.
En la siguiente cadena de conexión se utiliza el Controlador de texto de Microsoft.
Driver={Microsoft Text Driver (*.txt; *.csv)};DBQ=d:\bin
Cadenas de conexión Oracle
La propiedad ConnectionString de una OracleConnection permite obtener o establecer una cadena de conexión para un origen de datos OLE DB. Las cadenas de conexión Oracle también son compatibles con OracleConnectionStringBuilder.
Data Source=Oracle9i;User ID=*****;Password=*****;
Para obtener más información acerca de la sintaxis de cadena de conexión ODBC, vea ConnectionString.
Importante
Microsoft recomienda usar el flujo de autenticación más seguro disponible. Si se conecta a Azure SQL, el método de autenticación recomendado es Identidades administradas para recursos de Azure.