Partilhar via


Cadeias de conexão no ADO.NET

Uma cadeia de conexão contém informações de inicialização que são passadas como um parâmetro de um provedor de dados para uma fonte de dados. O provedor de dados recebe a cadeia de conexão como o valor da DbConnection.ConnectionString propriedade. O provedor analisa a cadeia de conexão e garante que a sintaxe esteja correta e que as palavras-chave sejam suportadas. Em seguida, o DbConnection.Open() método 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

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

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. Tanto as palavras-chave quanto os valores podem conter caracteres de espaço em branco. O espaço em branco à esquerda e à direita é ignorado em palavras-chave e valores não citados.

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

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

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

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

Você também pode escapar do caractere envolvente usando dois deles 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. O conjunto de palavras-chave reconhecidas depende do provedor, no entanto, e evoluiu ao longo dos anos a partir de APIs anteriores, como ODBC. O provedor de dados do .NET Framework para SQL Server (SqlClient) oferece 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 erros. Por exemplo, Integrated Security=true é válido, mas IntegratedSecurity=true causa um erro.

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

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.

Nesta secção

Construtores de cadeias de conexão
Demonstra como usar as ConnectionStringBuilder classes 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 da cadeia de conexão
Descreve como configurar cadeias de conexão específicas do provedor para SqlClient, OracleClient, OleDbe Odbc.

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

Consulte também