Partilhar via


Práticas recomendadas de segurança de replicação

Aplica-se a:SQL ServerAzure SQL Managed Instance

A replicação move dados em ambientes distribuídos, desde intranets em um único domínio até aplicativos que acessam dados entre domínios não confiáveis e pela Internet. É importante entender a melhor abordagem para proteger as conexões de replicação nessas diferentes circunstâncias.

As seguintes informações são relevantes para a replicação em todos os ambientes:

  • Criptografe as conexões entre computadores em uma topologia de replicação usando um método padrão do setor, como redes virtuais privadas (VPN), TLS (Transport Layer Security), anteriormente conhecido como SSL (Secure Sockets Layer) ou segurança IP (IPSEC). Para obter mais informações, consulte Habilitar conexões criptografadas com o Mecanismo de Banco de Dados (SQL Server Configuration Manager). Para obter informações sobre como usar VPN e TLS para replicar dados pela Internet, consulte Protegendo a replicação pela Internet.

    Se você usar o TLS 1.2 para proteger as conexões entre computadores em uma topologia de replicação, especifique um valor de 1 ou para o 2 parâmetro de cada agente de replicação (um valor de -EncryptionLevel é 2 recomendado). Um valor de especifica que a criptografia é usada, mas o agente não verifica se o certificado de 1 servidor TLS/SSL é assinado por um emissor confiável; um valor de 2 especifica que o certificado é verificado. A Instância Gerenciada SQL do Azure dá suporte ao TLS 1.3 para conexões provenientes de Instâncias Gerenciadas SQL do Azure ou do SQL Server 2025 e versões posteriores, especificando um valor de 3. A Instância Gerenciada do SQL do Azure e o SQL Server 2025 e versões posteriores oferecem suporte ao TLS 1.3 para conexões com o SQL Server especificando um valor de 4.

    Para obter informações sobre como trabalhar com agentes, consulte:

  • Execute cada agente de replicação em uma conta diferente do Windows e use a Autenticação do Windows para todas as conexões do agente de replicação. Para obter mais informações sobre como especificar contas, consulte Controle de identidade e acesso para replicação.

  • Conceda apenas as permissões necessárias a cada agente. Para obter mais informações, consulte a seção "Permissões exigidas pelos agentes" do Modelo de segurança do agente de replicação.

  • Verifique se todas as contas do Merge Agent e do Distribution Agent estão na lista de acesso à publicação (PAL). Para obter mais informações, consulte Proteger o editor.

  • Siga o princípio do menor privilégio, concedendo às contas na PAL apenas as permissões necessárias para executar tarefas de replicação. Não adicione os logons a nenhuma função de servidor fixa que não seja necessária para replicação.

  • Configure o compartilhamento de snapshot para permitir o acesso de leitura por todos os Merge Agents e Distribution Agents. No caso de instantâneos para publicações com filtros parametrizados, certifique-se de que cada pasta esteja configurada para permitir o acesso apenas às contas apropriadas do Merge Agent.

  • Configure o compartilhamento de snapshot para permitir o acesso de gravação pelo Snapshot Agent.

  • Se utilizar assinaturas pull, use uma partilha de rede em vez de um caminho local para a pasta de snapshot.

Se sua topologia de replicação incluir computadores que não estão no mesmo domínio ou estão em domínios que não têm relações de confiança entre si, você pode usar a Autenticação do Windows ou a Autenticação do SQL Server para as conexões feitas por agentes (Para obter mais informações sobre domínios, consulte a documentação do Windows). É recomendado, como prática recomendada de segurança, que você use a Autenticação do Windows.

  • Para usar a Autenticação do Windows:

    • Adicione uma conta local do Windows (não uma conta de domínio) para cada agente nos nós apropriados (use o mesmo nome e senha em cada nó). Por exemplo, o Agente de Distribuição de uma assinatura push é executado no Distribuidor e faz conexões com o Distribuidor e o Assinante. A conta do Windows para o Agente de Distribuição deve ser adicionada ao Distribuidor e ao Assinante.

    • Certifique-se que um determinado agente (por exemplo, o Agente de Distribuição de uma assinatura) funcione na mesma conta em cada computador.

  • Para usar a Autenticação do SQL Server:

    • Adicione uma conta do SQL Server para cada agente nos nós apropriados (use o mesmo nome de conta e senha em cada nó). Por exemplo, o Agente de Distribuição de uma assinatura push é executado no Distribuidor e faz conexões com o Distribuidor e o Assinante. A conta do SQL Server para o Agente de Distribuição deve ser adicionada ao Distribuidor e ao Assinante.

    • Certifique-se de que um determinado agente (por exemplo, o Agente de Distribuição de uma assinatura) faça conexões sob a mesma conta em cada computador.

    • Em situações que exigem a Autenticação do SQL Server, o acesso a compartilhamentos de instantâneos UNC geralmente não está disponível (por exemplo, o acesso pode ser bloqueado por um firewall). Nesse caso, você pode transferir o instantâneo para assinantes por meio do protocolo de transferência de arquivos (FTP). Para obter mais informações, consulte Transferir instantâneos por FTP.

Melhore a postura de segurança com a chave mestra do banco de dados

Observação

As instruções nesta seção são atualmente aplicáveis ao SQL Server 2022 CU18 e posterior, e ao SQL Server 2019 CU31 e posterior. Estas instruções não são aplicáveis à Instância Gerenciada SQL do Azure.

Ao usar a autenticação do SQL Server para replicação, os segredos que você fornece ao configurar a replicação são armazenados no SQL Server — especificamente, no banco de dados de distribuição e, para assinaturas pull, também no banco de dados do assinante.

Para melhorar a postura de segurança para replicação, antes de começar a configurar a replicação:

  • Crie uma chave mestra de banco de dados (DMK) no banco de dados de distribuição do servidor que hospeda o Distribuidor.
  • Para assinaturas pull, crie também um DMK no banco de dados de assinantes.

Se a replicação tiver sido criada antes do DMK, primeiro crie o DMK e, em seguida, atualize os segredos de replicação atualizando as senhas para trabalhos de replicação. Você pode atualizar o trabalho com a mesma senha ou pode usar uma nova senha.

Para atualizar segredos de replicação, use um dos seguintes procedimentos armazenados relevantes para atualizar senhas para trabalhos de replicação:

Configurar a replicação transacional sem um DMK pode resultar em aviso 14130 do SQL Server sobre:

  • Azure SQL Managed Instance
  • SQL Server 2022 CU18 e posterior
  • SQL Server 2019 CU31 e posterior