Conexão ao SQL Server com criptografia estrita

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

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.

  1. Pesquise o aplicativo Fontes de Dados ODBC no Windows.

    Captura de tela do aplicativo de fontes de dados ODBC.

  2. Verifique se você tem o driver ODBC mais recente examinando a guia Drivers do Administrador da Fonte de Dados ODBC.

    Captura de tela dos drivers disponíveis.

  3. 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.

  4. 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.

    Captura de tela da criação de uma fonte de dados usando o driver ODBC.

  5. 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.

    Captura de tela mostrando o tipo de criptografia estrita.

  6. 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 strict com o SQL Server para este teste.

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).

  1. 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 txt para udl. 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 txt para udl. 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.

  2. 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>>.

    Captura de tela da interface do provedor UDL.

  3. 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.

    Captura de tela da tela de conexão UDL.

  4. 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.

    Captura de tela da interface avançada do UDL.

  5. Selecione Testar Conectividade para testar a conexão com a criptografia de conexão strict.

    Captura da tela de conexão UDL e teste de conexão.

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 :

Captura de tela da caixa de diálogo Conectar-se ao servidor no SQL Server Management Studio.

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:

  1. 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.
  2. Teste as conexões com cada réplica do SQL Server usando um dos métodos mencionados neste artigo que impõe a criptografia.
  3. CREATE AVAILABILITY GROUP com a propriedade Encrypt definida como Strict na cláusula CLUSTER_CONNECTION_OPTIONS do grupo de disponibilidade. Isso garante que todas as conexões com o grupo de disponibilidade usem o tipo de criptografia especificado.
  4. 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 ClusterConnectionOptions nã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.
  5. (Opcional) Você pode impor ainda mais a criptografia definindo a opção Forçar Criptografia Estrita para Yes as 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:

  1. 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.
  2. 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.
  3. ALTER SERVER CONFIGURATION com a cláusula CLUSTER_CONNECTION_OPTIONS para definir a propriedade Encrypt como Mandatory ou Strict. Isso garante que todas as conexões com a instância do cluster de failover usem o tipo de criptografia especificado.
  4. 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 ClusterConnectionOptions nã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.
  5. (Opcional) Você pode impor ainda mais a criptografia ativando a opção Forçar Criptografia Estrita nas propriedades do Yes para 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\ForceEncryption
  • HKEY_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:

  1. Abra o SQL Server Configuration Manager.

  2. No painel esquerdo, expanda a Configuração de Rede do SQL Server e selecione Protocolos para [InstanceName].

  3. Clique com o botão direito do mouse em TCP/IP e selecione Propriedades.

  4. Na caixa de diálogo Propriedades TCP/IP , vá para a guia Sinalizadores e selecione Sim para a opção Forçar Criptografia Estrita :

    Captura de tela da opção Forçar Criptografia Estrita no SQL Server Configuration Manager.

  5. 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 HostNameInCertificate corresponde ao nome da Autoridade de Certificação ou a um dos nomes DNS no certificado.