Compartilhar via


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 da 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 anteriormente. 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 de cadeias de conexão expõem os parâmetros como propriedades fortemente tipadas e possibilitam a validação da cadeia de conexão antes que ela seja enviada à fonte de dados.

Importante

A Microsoft recomenda usar 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 é o método de autenticação recomendado.

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