Cadeias de conexão no ADO.NET
Aplicável a: .NET Framework .NET .NET Standard
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.