Cadeias de conexão no ADO.NET

Aplicável a: .NET Framework .NET .NET Standard

Baixar 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 acima. O conjunto de palavras-chave reconhecidas depende do provedor. O provedor de dados Microsoft SqlClient para SQL Server 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 no tempo de execução por 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 na fonte de dados. Para resolver esses problemas, a classe SqlConnectionStringBuilder foi criada. Esta classe construtor da cadeia de conexão expõe 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

Construtor de cadeia de conexão
Demonstra como usar a classe 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.

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