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.
- SqlConnectionStringBuilder
- OleDbConnectionStringBuilder
- OdbcConnectionStringBuilder
- OracleConnectionStringBuilder
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
A Autenticação do Windows (às vezes chamada de segurança integrada) pode ser usada para se conectar a fontes de dados que a suportam. 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.
Importante
A Microsoft recomenda que você use o fluxo de autenticação mais seguro disponível. Se você estiver se conectando ao SQL do Azure, as Identidades Gerenciadas para recursos do Azure serão o método de autenticação recomendado.
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)"
Importante
A Microsoft recomenda que você use o fluxo de autenticação mais seguro disponível. Se você estiver se conectando ao SQL do Azure, as Identidades Gerenciadas para recursos do Azure serão o método de autenticação recomendado.
Autenticação do SQL Server com SqlClient
A Autenticação do Windows é preferencial para conexão com o SQL Server (local). 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 ambos 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.
Importante
A Microsoft recomenda que você use o fluxo de autenticação mais seguro disponível. Se você estiver se conectando ao SQL do Azure, as Identidades Gerenciadas para recursos do Azure serão o método de autenticação recomendado.
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.
Alterações de versão do sistema de tipo
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
.
Conectar e anexar 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.
Usar 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á.
Ativar encriptação
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 externo baseado em arquivo para seu aplicativo, ele não pode ser protegido usando o .NET Framework. Arquivos UDL não são suportados para SqlClient.
Importante
A Microsoft recomenda que você use o fluxo de autenticação mais seguro disponível. Se você estiver se conectando ao SQL do Azure, as Identidades Gerenciadas para recursos do Azure serão o método de autenticação recomendado.
Usar DataDirectory para se conectar 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 Provider
Data 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;"
Importante
A Microsoft recomenda que você use o fluxo de autenticação mais seguro disponível. Se você estiver se conectando ao SQL do Azure, as Identidades Gerenciadas para recursos do Azure serão o método de autenticação recomendado.
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
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.
Importante
A Microsoft recomenda que você use o fluxo de autenticação mais seguro disponível. Se você estiver se conectando ao SQL do Azure, as Identidades Gerenciadas para recursos do Azure serão o método de autenticação recomendado.