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.
Aplica-se a: SQL Server 2022 (16.x) e versões posteriores
A criptografia de conexão estrita impõe boas práticas de segurança e torna o tráfego do SQL Server gerenciável por dispositivos de rede padrão. A criptografia estrita usa o TDS (Fluxo de Dados Tabular) 8.0, que encapsula a sessão TDS no TLS (Transport Layer Security) para criptografia de ponta a ponta.
Neste artigo, saiba como se conectar ao SQL Server 2022 (16.x) e versões posteriores usando o tipo de conexão estrita.
Pré-requisito
- SQL Server 2022 (16.x) ou posterior
- Driver ODBC ou OLE DB para SQL Server
- Driver ODBC para SQL Server versão 18.1.2.1 ou superior
- Driver do OLE DB para SQL Server versão 19.2.0 ou superior
- Crie e instale um certificado TLS (Transport Layer Security) para SQL Server. Para obter mais informações, confira Habilitar conexões criptografadas para o Mecanismo de Banco de Dados
Conectar-se ao SQL Server usando um aplicativo .NET
Para obter informações sobre como compilar e conectar-se ao SQL Server usando o tipo de criptografia strict, confira a Sintaxe da Cadeia de Conexão sobre como compilar corretamente a cadeia de conexão. Para obter mais informações sobre as novas propriedades da cadeia de conexão, confira Alterações adicionais nas propriedades de criptografia da cadeia de conexão.
Conexão usando um DSN de ODBC
Você pode testar uma conexão com o tipo de criptografia de conexão Strict usando um DSN de ODBC para SQL Server.
Pesquise o aplicativo Fontes de Dados ODBC no Windows.
Verifique se você tem o driver ODBC mais recente examinando a guia Drivers do Administrador da Fonte de Dados ODBC.
Na guia DSN do Sistema, selecione Adicionar para criar um DSN. Em seguida, selecione o Driver ODBC 18 para SQL Server. Selecione Concluir. Vamos usar isso para testar nossa conexão.
Na janela Criar uma Fonte de Dados para o SQL Server, forneça um nome para a fonte de dados e adicione o nome do seu servidor SQL Server 2022 (16.x) ao Servidor. Selecione Avançar.
Use todos os valores padrão para todas as configurações até chegar à tela que tem Criptografia de Conexão. Selecione Estrita. Se o nome do servidor que você inseriu for diferente daquele no certificado ou se o endereço IP for usado em vez disso, defina HostName no certificado como aquele usado em seu certificado. Selecione Concluir.
Quando a caixa de diálogo Instalação do ODBC do Microsoft SQL Server aparecer, selecione o botão Testar Fonte de Dados... para testar a conexão. Isso deve impor a conexão
strictcom o SQL Server para este teste.
Conexão usando o Universal Data Link
Você também pode testar a conexão com SQL Server com a criptografia strict usando o Driver do OLE DB com o UDL (Universal Data Link).
Para criar um arquivo UDL para testar sua conexão, clique com o botão direito do mouse na área de trabalho e selecione Novo>Documento de Texto. Você precisa alterar a extensão de
txtparaudl. Você pode dar ao arquivo o nome que quiser.Observação
Você precisa conseguir ver o nome da extensão para alterar a extensão de
txtparaudl. Se você não conseguir ver a extensão, poderá habilitar a exibição da extensão abrindo o Explorador de Arquivos>Exibir>Mostrar>Extensões de nomes de arquivos.Abra o arquivo UDL que você criou e acesse a guia Provedor para selecionar o Driver do Microsoft OLE DB 19 para SQL Server. Selecione Avançar>>.
Na guia Conexão, insira o nome do servidor do SQL Server e selecione o método de autenticação que você usa para fazer logon no SQL Server.
Na guia Avançado, selecione Rígido em Criptografia da conexão. Se o nome do servidor que você inseriu for diferente daquele que consta no certificado ou se for usado o endereço IP, defina Nome do host no certificado para coincidir com o utilizado em seu certificado. Volte para a guia Conexão quando terminar.
Selecione Testar Conectividade para testar a conexão com a criptografia de conexão
strict.
Conectar-se ao SSMS
A partir da versão 20, você pode impor criptografia estrita no SSMS (SQL Server Management Studio) na guia Logons da caixa de diálogo Conectar ao Servidor :
Conectar-se a um grupo de disponibilidade do Always On
A partir do SQL Server 2025 (17.x), você pode criptografar a comunicação entre o Cluster de Failover do Windows Server e uma réplica de grupo de disponibilidade Always On usando o tipo de criptografia de conexão Strict ou Mandatory. Seu grupo de disponibilidade só poderá impor a criptografia se ela for baseada em um Cluster de Failover do Windows Server. Outros tipos de grupos de disponibilidade não dão suporte a criptografia estrita.
Observação
A criptografia para pontos de extremidade de espelhamento de banco de dados é configurada separadamente e não há suporte para TLS. Para obter mais informações, consulte Segurança de transporte em grupos de disponibilidade e espelhamento de banco de dados.
As etapas diferem dependendo de sua disponibilidade já existir ou não.
Para forçar a criptografia estrita a um novo grupo de disponibilidade, siga estas etapas:
- Caso ainda não tenha feito isso, importe o certificado TLS para cada réplica do grupo de disponibilidade, conforme definido pelos requisitos de certificado. Reinicie cada instância do SQL Server depois de importar o certificado.
- Teste as conexões com cada réplica do SQL Server usando um dos métodos mencionados neste artigo que impõe a criptografia.
-
CREATE AVAILABILITY GROUP com a propriedade
Encryptdefinida comoStrictna cláusulaCLUSTER_CONNECTION_OPTIONSdo grupo de disponibilidade. Isso garante que todas as conexões com o grupo de disponibilidade usem o tipo de criptografia especificado. - Se o grupo de disponibilidade estiver online no momento, faça failover do grupo de disponibilidade para uma réplica secundária para aplicar as novas configurações de criptografia ao grupo de disponibilidade. Se o grupo de disponibilidade não ficar online, pode ser que o
ClusterConnectionOptionsnão esteja configurado corretamente. Verifique o cluster.log de erros ODBC relacionados à falha do cluster em se conectar à réplica do SQL Server. Opcionalmente, você pode realizar o failback do grupo de disponibilidade para a réplica primária original depois que a nova réplica secundária estiver online e conectada ao grupo de disponibilidade. - (Opcional) Você pode impor ainda mais a criptografia definindo a opção Forçar Criptografia Estrita para
Yesas propriedades do SQL Server Configuration Manager para o protocolo de conexão para cada réplica. Essa configuração garante que todas as conexões com as réplicas do grupo de disponibilidade usem criptografia estrita. Reinicie cada réplica do SQL Server depois de alterar essa configuração.
Conectar-se a uma instância de cluster de failover
A partir do SQL Server 2025 (17.x), você pode criptografar a comunicação entre o Cluster de Failover do Windows Server e uma instância de cluster de failover Always On usando o tipo de criptografia de conexão Strict ou Mandatory. Para fazer isso, siga estas etapas:
- Caso ainda não tenha feito isso, importe o certificado TLS para cada nó do cluster de failover, conforme definido pelos requisitos de certificado. Reinicie a instância do SQL Server depois de importar o certificado.
- Teste as conexões com a instância do cluster de failover usando um dos métodos mencionados neste artigo que impõe a criptografia.
-
ALTER SERVER CONFIGURATION com a cláusula
CLUSTER_CONNECTION_OPTIONSpara definir a propriedadeEncryptcomoMandatoryouStrict. Isso garante que todas as conexões com a instância do cluster de failover usem o tipo de criptografia especificado. - Faça failover da instância em um nó secundário para aplicar as novas configurações de criptografia à instância do cluster de failover. Se a instância do cluster de failover não ficar online, pode ser que
ClusterConnectionOptionsnão esteja configurado corretamente. Verifique o cluster.log de erros ODBC relacionados à falha do cluster em se conectar à instância do SQL Server. Opcionalmente, você pode fazer failback da instância para o nó primário original depois que o novo nó secundário estiver online e conectado à instância do cluster de failover. - (Opcional) Você pode impor ainda mais a criptografia ativando a opção Forçar Criptografia Estrita nas propriedades do
Yespara o protocolo de conexão de cada nó no cluster. Essa configuração garante que todas as conexões com a instância do cluster de failover usem criptografia estrita. Realize esta alteração no nó secundário, transfira a instância para ele, e em seguida, faça a alteração no nó primário.
criptografia de conexão SQL Server Agent
A partir do SQL Server 2025 (17.x), SQL Server Agent usa Microsoft ODBC Driver 18 para SQL Server, que dá suporte ao TDS 8.0 e ao TLS 1.3. SQL Server Agent ajusta automaticamente sua criptografia de conexão para corresponder à forma como a instância de SQL Server é configurada.
Como SQL Server Agent determina a criptografia
Quando SQL Server Agent é iniciado, ele consulta as seguintes chaves do Registro no computador local para determinar o nível de criptografia configurado para SQL Server:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL17.<InstanceName>\MSSQLServer\SuperSocketNetLib\ForceEncryptionHKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL17.<InstanceName>\MSSQLServer\SuperSocketNetLib\ForceStrict-
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL17.<InstanceName>\MSSQLServer\SuperSocketNetLib\SubjectAlternativeName(novo em SQL Server 2025 (17.x))
Com base nesses valores, SQL Server Agent seleciona seu modo de conexão:
- Se Force Strict Encryption estiver habilitado, o SQL Server Agent se conecta usando
strict(TDS 8.0). - Se Force Encryption estiver ativado, o SQL Server Agent se conecta usando
mandatory(TDS 7.x). - Se nenhum dos dois estiver habilitado, o SQL Server Agent se conectará por meio de
optional(TDS 7.x).
As etapas de trabalho T-SQL locais herdam a mesma configuração de criptografia que o serviço SQL Server Agent. Se o SQL Server Agent se conectar com strict, os jobs do T-SQL executados localmente no servidor usarão a mesma opção.
Importante
O TLS 1.3 só funciona com criptografia estrita. Se a instância do SQL Server tiver apenas o TLS 1.3 habilitado no nível do sistema operacional, mas apenas Force Encryption estiver definido (e não Force Strict Encryption), o SQL Server Agent não poderá ser iniciado porque os modos mandatory e optional exigem TDS 7.x, que não é compatível com o TLS 1.3.
Matriz de configuração de criptografia e TLS
| Versão do TLS habilitada | Definição de configuração | Resultado do SQL Server Agent | Notes |
|---|---|---|---|
| Somente TLS 1.3 | Forçar criptografia estrita | Conecta-se com êxito | O TDS 8.0 usa criptografia estrita |
| Somente TLS 1.3 | Forçar Criptografia | Falha ao se conectar | O TLS 1.3 exige rigor |
| Somente TLS 1.3 | None | Falha ao se conectar | O TLS 1.3 requer criptografia estrita |
| Somente TLS 1.2 | Forçar criptografia estrita | Conecta-se com êxito | O TDS 8.0 pode usar o TLS 1.2 |
| Somente TLS 1.2 | Forçar Criptografia | Conecta-se com êxito | TDS 7.x com obrigatoriedade |
| Somente TLS 1.2 | None | Conecta-se com êxito | TDS 7.x com opção |
| TLS 1.2 e TLS 1.3 | Forçar criptografia estrita | Conecta-se com êxito | O TDS 8.0 usa criptografia estrita |
| TLS 1.2 e TLS 1.3 | Forçar Criptografia | Conecta com sucesso | TDS 7.x com obrigatoriedade |
| TLS 1.2 e TLS 1.3 | None | Conecta-se com êxito | TDS 7.x com opção |
Verificar a criptografia negociada do SQL Server Agent
Depois que SQL Server Agent se conectar, execute a seguinte consulta para confirmar seu modo de criptografia:
SELECT s.session_id, c.encrypt_option, s.program_name, s.client_interface_name, s.nt_user_name
FROM sys.dm_exec_connections AS c
INNER JOIN sys.dm_exec_sessions AS s
ON c.session_id = s.session_id
WHERE s.program_name LIKE 'SQLAgent%';
A coluna encrypt_option retorna TRUE quando o SQL Server Agent se conecta com criptografia.
Para obter uma visão geral de SQL Server Agent em si, consulte SQL Server Agent.
Forçar criptografia estrita com o SQL Server Configuration Manager
Você pode impor criptografia estrita usando o SQL Server Configuration Manager a partir do SQL Server 2022 (16.x). Para fazer isso, siga estas etapas:
Abra o SQL Server Configuration Manager.
No painel esquerdo, expanda a Configuração de Rede do SQL Server e selecione Protocolos para [InstanceName].
Clique com o botão direito do mouse em TCP/IP e selecione Propriedades.
Na caixa de diálogo Propriedades TCP/IP , vá para a guia Sinalizadores e selecione Sim para a opção Forçar Criptografia Estrita :
Reinicie a instância do SQL Server durante uma janela de manutenção para aplicar as alterações.
Comentários
Se você vir SSL certificate validation failed, valide que:
- O certificado do servidor é válido no computador que você está usando para teste
- Pelo menos um dos seguintes é verdadeiro:
- O provedor do SQL Server corresponde ao nome da Autoridade de Certificação ou a um dos nomes DNS no certificado.
- A propriedade de cadeia de conexão
HostNameInCertificatecorresponde ao nome da Autoridade de Certificação ou a um dos nomes DNS no certificado.