Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Este artigo descreve mudanças de impacto entre o Driver 18 do Microsoft ODBC para SQL Server e a versão 17.
A maioria dos aplicativos que atualizam da versão 17 para a versão 18 é afetada por uma única alteração: as conexões são criptografadas por padrão. Se sua aplicação para de se conectar após a atualização, leia primeiro o comportamento padrão de criptografia .
Resumo das alterações
| Area | Versão 17 | Versão 18 e versões posteriores |
|---|---|---|
Configuração padrão Encrypt |
no |
yes |
Encrypt Valores aceitos |
yes, no |
yes, no, Mandatory, Optional, Strict |
| Modos de criptografia | De vez em quando | Desligada, ligada ou rígida |
| Validação do certificado do servidor | Isso não acontece a menos que você peça criptografia | Ocorre por padrão, porque a criptografia está ativada por padrão |
| Palavras-chave de cadeia de conexão | Conjunto base | Conjunto base mais novas palavras-chave |
Alterações de criptografia
Comportamento de criptografia padrão
Na versão 17, as conexões não são criptografadas a menos que você peça criptografia ou o servidor exija isso. Na versão 18 e versões posteriores, as conexões são criptografadas por padrão.
Como o driver valida o certificado do servidor sempre que criptografa uma conexão, um aplicativo que se conecta a um servidor com um certificado autoassinado ou não confiável se conecta com sucesso com a versão 17 e falha com a versão 18. A falha é um erro de validação de certificado, não um erro de autenticação.
Você tem três formas de resolver isso, listadas do mais ao menos seguro:
- Instale um certificado no servidor em que o cliente confia. Essa opção é a recomendada, e é a única que mantém tanto a criptografia quanto a validação.
- Mantenha a criptografia ativa e informe ao driver qual nome validar, configurando
HostNameInCertificateouServerCertificate. - Desligue a criptografia para restaurar o padrão da versão 17, adicionando
Encrypt=noà cadeia de conexão.
Caution
A configuração TrustServerCertificate=yes mantém a conexão criptografada, mas desativa a validação do certificado, o que deixa a conexão vulnerável a ataques adversários no meio. Prefira um certificado confiável.
Valores de criptografia
A versão 17 aceita apenas yes e no. A versão 18 e versões posteriores aceitam esses valores e adicionam mais três:
| Value | Equivalente a | Behavior |
|---|---|---|
Mandatory |
yes |
A conexão é criptografada. |
Optional |
no |
A conexão não é criptografada a menos que o servidor exija. |
Strict |
None | A conexão utiliza criptografia TDS 8.0. |
Strict não possui equivalente à versão 17. É o único valor que seleciona o TDS 8.0, onde a criptografia é negociada antes da troca de login, e não durante ela.
Restaurar comportamento de criptografia da versão 17
Para restaurar o comportamento padrão da versão 17, defina Encrypt explicitamente:
Driver={ODBC Driver 18 for SQL Server};Server=<server>;Database=<database>;UID=<user_id>;PWD=<password>;Encrypt=no;
Definir o valor explicitamente é benéfico mesmo na versão 17, porque faz a cadeia de conexão agir da mesma forma em ambas as versões.
Novas palavras-chave de cadeia de conexão
A versão 18 adiciona as seguintes palavras-chave de cadeia de conexão, que a versão 17 não reconhece:
| Keyword | Purpose |
|---|---|
ConcatNullYieldsNull |
Determina se concatenar um valor nulo gera valor nulo. |
GetDataExtensions |
Controle quais SQLGetData extensões o driver permite. |
HostNameInCertificate |
Especifica o nome do host a validar no certificado TLS do servidor. |
IpAddressPreference |
Especifica a família de endereços IP que o driver tenta primeiro. |
LongAsMax |
Mapeia tipos de dados longos para seus max equivalentes. |
RetryExec |
Configura regras de retentativa para consultas falhadas. |
ServerCertificate |
Especifica o caminho para um arquivo de certificado para validar o servidor contra ele. |
Palavras-chave individuais foram introduzidas em diferentes versões 18. Para a versão que introduziu cada palavra-chave e para a referência completa de palavras-chave, veja ODBC DSN e palavras-chave de cadeia de conexão.