Sintaxe da cadeia de conexão

Cada provedor de dados do .NET Framework tem um Connection objeto que herda de, bem como uma propriedade específica ConnectionString do DbConnection provedor. A sintaxe específica da cadeia de conexão para cada provedor está documentada em sua ConnectionString propriedade. A tabela a seguir lista os quatro provedores de dados incluídos no .NET Framework.

Provedor de dados do .NET Framework Description
System.Data.SqlClient Fornece acesso a dados para o Microsoft SQL Server. Para obter mais informações sobre a sintaxe da cadeia de conexão, consulte ConnectionString.
System.Data.OleDb Fornece acesso a dados para fontes de dados expostas usando OLE DB. Para obter mais informações sobre a sintaxe da cadeia de conexão, consulte ConnectionString.
System.Data.Odbc Fornece acesso a dados para fontes de dados expostas usando ODBC. Para obter mais informações sobre a sintaxe da cadeia de conexão, consulte ConnectionString.
System.Data.OracleClient Fornece acesso a dados para Oracle versão 8.1.7 ou posterior. Para obter mais informações sobre a sintaxe da cadeia de conexão, consulte ConnectionString.

Construtores de cadeias de conexão

ADO.NET 2.0 introduziu os seguintes construtores de cadeia de conexão para os provedores de dados do .NET Framework.

Os construtores de cadeias de conexão permitem que você construa cadeias de conexão sintaticamente válidas em tempo de execução, para que você não precise concatenar manualmente os valores da cadeia de conexão em seu código. Para obter mais informações, consulte Construtores de cadeias de conexão.

Autenticação do Windows

Recomendamos o uso da Autenticação do Windows (às vezes chamada de segurança integrada) para se conectar a fontes de dados que oferecem suporte a ela. A sintaxe empregada na cadeia de conexão varia de acordo com o provedor. A tabela a seguir mostra a sintaxe de Autenticação do Windows usada com os provedores de dados do .NET Framework.

Provider Sintaxe
SqlClient Integrated Security=true;

-- or --

Integrated Security=SSPI;
OleDb Integrated Security=SSPI;
Odbc Trusted_Connection=yes;
OracleClient Integrated Security=yes;

Nota

Integrated Security=true lança uma exceção quando usado com o OleDb provedor.

Cadeias de conexão SqlClient

A sintaxe de uma SqlConnection cadeia de conexão está documentada SqlConnection.ConnectionString na propriedade. Você pode usar a ConnectionString propriedade para obter ou definir uma cadeia de conexão para um banco de dados do SQL Server. Se você precisar se conectar a uma versão anterior do SQL Server, deverá usar o Provedor de Dados do .NET Framework para OleDb (System.Data.OleDb). A maioria das palavras-chave da cadeia de conexão também é mapeada para propriedades no SqlConnectionStringBuilder.

Importante

A configuração padrão para a Persist Security Info palavra-chave é false. Defini-lo como true ou yes permite que informações confidenciais de segurança, incluindo o ID de usuário e a senha, sejam obtidas da conexão após a conexão ter sido aberta. Mantenha Persist Security Info definido para false garantir que uma fonte não confiável não tenha acesso a informações confidenciais da cadeia de conexão.

Autenticação do Windows com SqlClient

Cada uma das seguintes formas de sintaxe usa a Autenticação do Windows para se conectar ao banco de dados AdventureWorks em um servidor local.

"Persist Security Info=False;Integrated Security=true;  
    Initial Catalog=AdventureWorks;Server=MSSQL1"  
"Persist Security Info=False;Integrated Security=SSPI;  
    database=AdventureWorks;server=(local)"  
"Persist Security Info=False;Trusted_Connection=True;  
    database=AdventureWorks;server=(local)"  

Autenticação do SQL Server com SqlClient

A Autenticação do Windows é preferencial para se conectar ao SQL Server. No entanto, se a Autenticação do SQL Server for necessária, use a sintaxe a seguir para especificar um nome de usuário e uma senha. Neste exemplo, os asteriscos são usados para representar um nome de usuário e senha válidos.

"Persist Security Info=False;User ID=*****;Password=*****;Initial Catalog=AdventureWorks;Server=MySqlServer"  

Quando você se conectar ao Banco de Dados SQL do Azure ou ao SQL Data Warehouse do Azure e fornecer um logon no formato user@servername, verifique se o servername valor no logon corresponde ao valor fornecido para Server=.

Nota

A autenticação do Windows tem precedência sobre os logons do SQL Server. Se você especificar Integrated Security=true, bem como um nome de usuário e senha, o nome de usuário e a senha serão ignorados e a autenticação do Windows será usada.

Conectar-se a uma instância nomeada do SQL Server

Para se conectar a uma instância nomeada do SQL Server, use a sintaxe nome do servidor\nome da instância.

"Data Source=MySqlServer\\MSSQL1;"  

Você também pode definir a DataSource propriedade do para o nome da instância ao criar uma cadeia de SqlConnectionStringBuilder conexão. A DataSource propriedade de um SqlConnection objeto é somente leitura.

Digite Alterações de versão do sistema

A Type System Version palavra-chave em um SqlConnection.ConnectionString especifica a representação do lado do cliente dos tipos do SQL Server. Consulte SqlConnection.ConnectionString para obter mais informações sobre a palavra-chave Type System Version .

Conectando e anexando a instâncias de usuário do SQL Server Express

As instâncias de usuário são um recurso no SQL Server Express. Eles permitem que um usuário executado em uma conta local do Windows com privilégios mínimos anexe e execute um banco de dados do SQL Server sem exigir privilégios administrativos. Uma instância de usuário é executada com as credenciais do Windows do usuário, não como um serviço.

Para obter mais informações sobre como trabalhar com instâncias de usuário, consulte Instâncias de usuário do SQL Server Express.

Usando TrustServerCertificate

A TrustServerCertificate palavra-chave é válida somente quando se conecta a uma instância do SQL Server com um certificado válido. Quando TrustServerCertificate estiver definido como true, a camada de transporte usará SSL para criptografar o canal e ignorar a cadeia de certificados para validar a confiança.

"TrustServerCertificate=true;"

Nota

Se TrustServerCertificate estiver definido como true e a criptografia estiver ativada, o nível de criptografia especificado no servidor será usado mesmo que Encrypt esteja definido como false na cadeia de conexão. Caso contrário, a conexão falhará.

Ativando a criptografia

Para habilitar a criptografia quando um certificado não tiver sido provisionado no servidor, as opções Forçar Criptografia de Protocolo e Certificado do Servidor Confiável devem ser definidas no SQL Server Configuration Manager. Nesse caso, a criptografia usará um certificado de servidor autoassinado sem validação se nenhum certificado verificável tiver sido provisionado no servidor.

As configurações do aplicativo não podem reduzir o nível de segurança configurado no SQL Server, mas podem, opcionalmente, fortalecê-lo. Um aplicativo pode solicitar criptografia definindo as palavras-chave e Encrypt como true, garantindo que a TrustServerCertificate criptografia ocorra mesmo quando um certificado de servidor não foi provisionado e Force Protocol Encryption não foi configurado para o cliente. No entanto, se TrustServerCertificate não estiver habilitado na configuração do cliente, um certificado de servidor provisionado ainda será necessário.

A tabela a seguir descreve todos os casos.

Forçar configuração do cliente de criptografia de protocolo Configuração do cliente de Certificado do Servidor Confiável Criptografar/Usar criptografia para cadeia de conexão/atributo de dados Cadeia de conexão/atributo do Certificado de Servidor Confiável Result
No N/A Não (padrão) Ignorada Nenhuma criptografia ocorre.
No N/D Sim Não (padrão) A criptografia ocorre somente se houver um certificado de servidor verificável, caso contrário, a tentativa de conexão falhará.
No N/D Sim Sim A criptografia sempre ocorre, mas pode usar um certificado de servidor autoassinado.
Sim No Ignorada Ignorada A encriptação ocorre apenas se existir um certificado de servidor verificável; caso contrário, a tentativa de conexão falhará.
Sim Sim Não (padrão) Ignorada A criptografia sempre ocorre, mas pode usar um certificado de servidor autoassinado.
Sim Sim Sim Não (padrão) A encriptação ocorre apenas se existir um certificado de servidor verificável; caso contrário, a tentativa de conexão falhará.
Sim Sim Sim Sim A criptografia sempre ocorre, mas pode usar um certificado de servidor autoassinado.

Para obter mais informações, consulte Usando criptografia sem validação.

Cadeias de conexão OleDb

A ConnectionString propriedade de a OleDbConnection permite obter ou definir uma cadeia de conexão para uma fonte de dados OLE DB, como o Microsoft Access. Você também pode criar uma cadeia de OleDb conexão em tempo de execução usando a OleDbConnectionStringBuilder classe.

Sintaxe da cadeia de conexão OleDb

Você deve especificar um nome de provedor para uma cadeia de OleDbConnection conexão. A cadeia de conexão a seguir se conecta a um banco de dados do Microsoft Access usando o provedor Jet. Observe que as palavras-chave e Password são User ID opcionais se o banco de dados não for seguro (o padrão).

Provider=Microsoft.Jet.OLEDB.4.0; Data Source=d:\Northwind.mdb;User ID=Admin;Password=;

Se o banco de dados Jet estiver protegido usando segurança em nível de usuário, você deverá fornecer o local do arquivo de informações do grupo de trabalho (.mdw). O arquivo de informações do grupo de trabalho é usado para validar as credenciais apresentadas na cadeia de conexão.

Provider=Microsoft.Jet.OLEDB.4.0;Data Source=d:\Northwind.mdb;Jet OLEDB:System Database=d:\NorthwindSystem.mdw;User ID=*****;Password=*****;  

Importante

É possível fornecer informações de conexão para um OleDbConnection em um arquivo UDL (Universal Data Link ), no entanto, você deve evitar fazê-lo. Os ficheiros UDL não são encriptados e expõem informações da cadeia de ligação em texto não codificado. Como um arquivo UDL é um recurso baseado em arquivo externo para seu aplicativo, ele não pode ser protegido usando o .NET Framework. Arquivos UDL não são suportados para SqlClient.

Usando o DataDirectory para conectar-se ao Access/Jet

DataDirectory não é exclusivo da SqlClient. Ele também pode ser usado com os System.Data.OleDb provedores de dados .NET e System.Data.Odbc .NET. A seqüência de caracteres de exemplo OleDbConnection a seguir demonstra a sintaxe necessária para se conectar ao Northwind.mdb localizado na pasta app_data do aplicativo. O banco de dados do sistema (System.mdw) também é armazenado nesse local.

"Provider=Microsoft.Jet.OLEDB.4.0;  
Data Source=|DataDirectory|\Northwind.mdb;  
Jet OLEDB:System Database=|DataDirectory|\System.mdw;"  

Importante

Não é necessário especificar a localização da base de dados do sistema na cadeia de ligação se a base de dados Access/Jet não estiver protegida. A segurança está desativada por padrão, com todos os usuários se conectando como o usuário Admin interno com uma senha em branco. Mesmo quando a segurança ao nível do utilizador é corretamente implementada, uma base de dados Jet permanece vulnerável a ataques. Portanto, armazenar informações confidenciais em um banco de dados Access/Jet não é recomendado devido à fraqueza inerente de seu esquema de segurança baseado em arquivo.

Ligar ao Excel

O provedor Microsoft Jet é usado para se conectar a uma pasta de trabalho do Excel. Na cadeia de conexão a seguir, a Extended Properties palavra-chave define propriedades que são específicas do Excel. "HDR=Sim;" indica que a primeira linha contém nomes de colunas, não dados, e "IMEX=1;" diz ao driver para sempre ler colunas de dados "misturadas" como texto.

Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\MyExcel.xls;Extended Properties=""Excel 8.0;HDR=Yes;IMEX=1""  

Observe que o caractere de aspas duplas necessário para o Extended Properties também deve ser colocado entre aspas duplas.

Sintaxe da Cadeia de Conexão do Provedor de Forma de Dados

Use as palavras-chave e as ProviderData Provider palavras-chave ao usar o provedor Microsoft Data Shape. O exemplo a seguir usa o provedor Shape para se conectar a uma instância local do SQL Server.

"Provider=MSDataShape;Data Provider=SQLOLEDB;Data Source=(local);Initial Catalog=pubs;Integrated Security=SSPI;"

Cadeias de conexão Odbc

A ConnectionString propriedade de a OdbcConnection permite obter ou definir uma cadeia de conexão para uma fonte de dados OLE DB. As cadeias de conexão Odbc também são suportadas OdbcConnectionStringBuilderpelo .

A seqüência de conexão a seguir usa o driver de texto da Microsoft.

Driver={Microsoft Text Driver (*.txt; *.csv)};DBQ=d:\bin  

Usando DataDirectory para se conectar ao Visual FoxPro

O exemplo de cadeia de conexão a seguir OdbcConnection demonstra o uso DataDirectory para se conectar a um arquivo do Microsoft Visual FoxPro.

"Driver={Microsoft Visual FoxPro Driver};  
SourceDB=|DataDirectory|\MyData.DBC;SourceType=DBC;"  

Cadeias de conexão Oracle

A ConnectionString propriedade de a OracleConnection permite obter ou definir uma cadeia de conexão para uma fonte de dados OLE DB. As cadeias de conexão Oracle também são suportadas OracleConnectionStringBuilder pelo .

Data Source=Oracle9i;User ID=*****;Password=*****;  

Para obter mais informações sobre a sintaxe da cadeia de conexão ODBC, consulte ConnectionString.

Consulte também