Cadeias de caracteres de conexão no ADO.NET

Uma cadeia de conexão contém informações de inicialização que são passadas como parâmetros de um provedor de dados para uma fonte de dados. O provedor de dados recebe a cadeia de conexão como o valor da propriedade DbConnection.ConnectionString. O provedor analisa a cadeia de conexão, garantindo que a sintaxe esteja correta e que as palavras-chave tenham suporte. Em seguida, o método DbConnection.Open() passa os parâmetros de conexão analisados para a fonte de dados. A fonte de dados executa uma validação adicional e estabelece uma conexão.

Sintaxe de cadeia de conexão

A cadeia de conexão é uma lista de pares chave-valor de parâmetros separados por ponto e vírgula:

keyword1=value; keyword2=value;

As palavras-chave não diferenciam maiúsculas de minúsculas. Os valores, no entanto, podem diferenciar maiúsculas de minúsculas, dependendo da fonte de dados. As palavras-chave e os valores podem conter caracteres de espaço em branco. Espaços em branco à esquerda e à direita são ignorados em palavras-chave e valores sem aspas.

Se um valor contiver o ponto e vírgula, caracteres de controle Unicodeou espaços em branco à esquerda ou à direita, ele deverá ser colocado entre aspas simples ou duplas. Por exemplo:

Keyword=" whitespace  ";
Keyword='special;character';

O caractere delimitador pode não ocorrer dentro do valor que ele inclui. Portanto, um valor contendo aspas simples pode ser colocado somente entre aspas duplas, e vice-versa:

Keyword='double"quotation;mark';
Keyword="single'quotation;mark";

Você também pode fazer escape do caractere delimitador usando os dois tipos de aspas juntos:

Keyword="double""quotation";
Keyword='single''quotation';

As aspas em si, bem como o sinal de igual, não exigem escape, portanto, as seguintes cadeias de conexão são válidas:

Keyword=no "escaping" 'required';
Keyword=a=b=c

Como cada valor é lido até o próximo ponto e vírgula ou o final da cadeia de caracteres, o valor no último exemplo é a=b=c, e o ponto e vírgula final é opcional.

Todas as cadeias de conexão compartilham a mesma sintaxe básica descrita acima. No entanto, o conjunto de palavras-chave reconhecidas depende do provedor e evoluiu ao longo dos anos de APIs anteriores, como o ODBC. O provedor de dados .NET Framework para SQL Server (SqlClient) dá suporte a muitas palavras-chave de APIs mais antigas, mas é geralmente mais flexível e aceita sinônimos para muitas das palavras-chave comuns da cadeia de conexão.

Erros de digitação podem causar problemas. Por exemplo, Integrated Security=true é válido, mas IntegratedSecurity=true gera um erro.

As cadeias de conexão construídas manualmente em tempo de execução a partir de uma entrada de usuário não validada são vulneráveis a ataques de injeção de cadeia de caracteres, colocando em risco a segurança da fonte de dados. Para resolver esses problemas, o ADO.NET 2.0 introduziu novos construtores de cadeias de conexão para cada provedor de dados .NET Framework. Esses construtores expõem parâmetros como propriedades fortemente tipadas e torna possível validar a cadeia de conexão antes que ela seja enviada para a fonte de dados.

Nesta seção

Construtores de cadeia de conexão
Demonstra como usar as classes ConnectionStringBuilder para construir cadeias de conexão válidas em tempo de execução.

Cadeias de conexão e arquivos de configuração
Demonstra como armazenar e recuperar cadeias de conexão em arquivos de configuração.

Sintaxe de cadeia de conexão
Descreve como configurar cadeias de conexão específicas do provedor para SqlClient, OracleClient, OleDb e Odbc.

Protegendo informações de conexão
Demonstra técnicas para proteger informações usadas para se conectar a uma fonte de dados.

Confira também