Partilhar via


Segurança de Transporte - Espelhamento de Banco de Dados - Disponibilidade Sempre Ativa

Aplica-se a:SQL Server

A segurança do transporte envolve autenticação e, opcionalmente, criptografia de mensagens trocadas entre os bancos de dados. Para espelhamento de bases de dados e grupos de disponibilidade Always On, a autenticação e a criptografia são configuradas no ponto de extremidade de espelhamento de bases de dados. Para obter uma introdução aos pontos de extremidade de espelhamento de banco de dados, consulte O ponto de extremidade de espelhamento de banco de dados (SQL Server).

Neste tópico:

Autenticação

A autenticação é o processo de verificar se um usuário é quem afirma ser. As conexões entre os pontos de extremidade de espelhamento de bases de dados requerem autenticação. Os pedidos de conexão de um parceiro ou testemunha, se houver, devem ser autenticados.

O tipo de autenticação usado por uma instância de servidor para espelhamento de banco de dados ou grupos de disponibilidade Always On é uma propriedade do endpoint de espelhamento de base de dados. Existem dois tipos de segurança de transporte disponíveis para pontos finais de espelhamento de bases de dados: autenticação do Windows (Interface de Provedor de Suporte de Segurança - SSPI) e autenticação baseada em certificados.

Autenticação do Windows

Em Autenticação do Windows, cada instância do servidor efetua login no outro lado usando as credenciais do Windows da conta de usuário do Windows sob a qual o processo está sendo executado. A Autenticação do Windows pode exigir alguma configuração manual de contas de login, da seguinte maneira:

  • Se as instâncias do SQL Server forem executadas como serviços na mesma conta de domínio, nenhuma configuração extra será necessária.

  • Se as instâncias do SQL Server forem executadas como serviços em contas de domínio diferentes (nos mesmos domínios ou em domínios confiáveis), o logon de cada conta deverá ser criado em mestre em cada uma das outras instâncias do servidor e esse logon deverá receber permissões CONNECT no ponto de extremidade.

  • Se as instâncias do SQL Server forem executadas como a conta do Serviço de Rede, o logon de cada conta de computador host (DomainName\ComputerName$) deverá ser criado em master em cada um dos outros servidores e esse logon deverá receber permissões CONNECT no ponto de extremidade. Isso ocorre porque uma instância de servidor em execução na conta do Serviço de Rede é autenticada usando a conta de domínio do computador host.

Observação

Para obter um exemplo de configuração de uma sessão de espelhamento de banco de dados usando a Autenticação do Windows, consulte Exemplo: Configurando o espelhamento de banco de dados usando a autenticação do Windows (Transact-SQL).

Certificados

Em algumas situações, como quando as instâncias do servidor não estão em domínios confiáveis ou quando o SQL Server está sendo executado como um serviço local, a Autenticação do Windows não está disponível. Nesses casos, em vez de credenciais de usuário, são necessários certificados para autenticar solicitações de conexão. O endpoint de espelhamento de cada instância do servidor deve ser configurado com o seu próprio certificado criado localmente.

O método de criptografia é estabelecido quando o certificado é criado. Para obter mais informações, consulte Permitir que um endpoint de espelhamento de base de dados utilize certificados para ligações de saída (Transact-SQL). Gerencie cuidadosamente os certificados que você usa.

Uma instância de servidor usa a chave privada de seu próprio certificado para estabelecer sua identidade ao configurar uma conexão. A instância do servidor que recebe a solicitação de conexão usa a chave pública do certificado do remetente para autenticar a identidade do remetente. Por exemplo, considere duas instâncias de servidor, Server_A e Server_B. Server_A usa sua chave privada para criptografar o cabeçalho da conexão antes de enviar uma solicitação de conexão para Server_B. Server_B usa a chave pública do certificado do Server_A para descriptografar o cabeçalho da conexão. Se o cabeçalho desencriptado estiver correto, Server_B sabe que o cabeçalho foi encriptado por Server_A e a ligação está autenticada. Se o cabeçalho descriptografado estiver incorreto, Server_B sabe que a solicitação de conexão é inautêntica e recusa a conexão.

Encriptação de Dados

Por padrão, um ponto de extremidade de espelhamento de banco de dados requer encriptação de dados enviados por conexões de espelhamento. Nesse caso, o ponto de extremidade pode se conectar apenas a pontos de extremidade que também usam criptografia. A menos que você possa garantir que sua rede é segura, recomendamos que você precise de criptografia para suas conexões de espelhamento de banco de dados. No entanto, você pode desativar a criptografia ou torná-la suportada, mas não necessária. Se a criptografia estiver desabilitada, os dados nunca serão criptografados e o ponto de extremidade não poderá se conectar a um ponto de extremidade que exija criptografia. Se a encriptação for suportada, os dados só serão encriptados se o ponto de extremidade oposto suportar ou exigir encriptação.

Observação

Os pontos de extremidade de espelhamento criados pelo SQL Server Management Studio são criados com criptografia necessária ou desabilitada. Para alterar a configuração de criptografia para SUPPORTED, use a instrução ALTER ENDPOINT Transact-SQL. Para obter mais informações, consulte ALTER ENDPOINT (Transact-SQL).

Opcionalmente, você pode controlar os algoritmos de criptografia que podem ser usados por um ponto de extremidade, especificando um dos seguintes valores para a opção ALGORITHM em uma instrução CREATE ENDPOINT ou uma instrução ALTER ENDPOINT:

Valor de Algoritmo Descrição
RC4 Especifica que o endpoint deve utilizar o algoritmo RC4. Este é o padrão.

** Advertência ** O algoritmo RC4 foi preterido. Esse recurso será removido em uma versão futura do SQL Server. Evite usar esse recurso em novos trabalhos de desenvolvimento e planeje modificar aplicativos que atualmente usam esse recurso. Recomendamos que você use AES.
AES Especifica que o ponto de extremidade deve usar o algoritmo AES.
AES RC4 Especifica que os dois terminais negociarão um algoritmo de criptografia, com este terminal a dar preferência ao algoritmo AES.
RC4 AES Especifica que os dois endpoints negociarão um algoritmo de criptografia, com este endpoint dando preferência ao algoritmo RC4.

Se os pontos de extremidade de conexão especificarem ambos os algoritmos, mas em ordens diferentes, o ponto de extremidade que aceita a conexão vence.

Observação

O algoritmo RC4 só é suportado para compatibilidade com versões anteriores. O novo material só pode ser encriptado utilizando RC4 ou RC4_128 quando a base de dados estiver no nível de compatibilidade 90 ou 100. (Não recomendado.) Em vez disso, use um algoritmo mais recente, como um dos algoritmos AES. No SQL Server 2012 (11.x) e versões superiores, o material criptografado usando RC4 ou RC4_128 pode ser descriptografado em qualquer nível de compatibilidade.

Embora consideravelmente mais rápido do que o AES, o RC4 é um algoritmo relativamente fraco, enquanto o AES é um algoritmo relativamente forte. Portanto, recomendamos que você use o algoritmo AES.

Para obter informações sobre a sintaxe Transact-SQL para especificar a criptografia, consulte CREATE ENDPOINT (Transact-SQL).

Tarefas relacionadas

Para configurar a segurança de transporte para um endpoint de espelhamento de base de dados

Ver também

Escolha um algoritmo de encriptação
ALTER ENDPOINT (Transact-SQL)
ELIMINAR PONTO DE LIGAÇÃO (Transact-SQL)
Central de Segurança para o Mecanismo de Banco de Dados SQL Server e o Banco de Dados SQL Azure
gerenciar metadados ao disponibilizar um banco de dados em outra instância do servidor (SQL Server)
O endpoint de espelhamento de base de dados (SQL Server)
sys.database_mirroring_endpoints (Transact-SQL)
sys.dm_db_mirroring_connections (Transact-SQL)
Solucionar problemas de configuração de espelhamento de banco de dados (SQL Server)
Resolver problemas de configuração dos Always On Availability Groups (SQL Server)