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
, OleDb
e Odbc
.
Protegendo informações de conexão
Demonstra técnicas para proteger as informações usadas para se conectar a uma fonte de dados.