Segurança de transporte de espelhamento de banco de dados
A segurança de transporte no SQL Server 2005 e versões posteriores envolve autenticação e, opcionalmente, criptografia de mensagens trocadas entre os bancos de dados.
Para o espelhamento de banco de dados, a autenticação e a criptografia são configuradas no ponto de extremidade. Para uma introdução sobre pontos de extremidade de espelhamento, consulte Ponto de extremidade de espelhamento de banco de dados.
Autenticação
Autenticação é o processo de verificar se um usuário é quem o usuário diz ser. Conexões entre pontos de extremidade espelhamento de banco de dados requerem autenticação. Exigências de conexão de um parceiro ou testemunha, se existir, devem ser autenticadas.
O tipo de autenticação usado por uma instância de servidor é uma propriedade do ponto de extremidade de espelhamento de seu banco de dados. Dois tipos de segurança de transporte estão disponíveis para o espelhamento de banco de dados: Autenticação do Windows e autenticação baseada em certificado.
A Autenticação do Windows aceita dois protocolos de autenticação: Administrador de NT LAN (NTLM) e Kerberos. Um ponto de extremidade de espelhamento de banco de dados pode ser configurado para usar só um protocolo ou para negociar entre eles. Por padrão, a negociação é usada. O valor padrão, NEGOTIATE, faz o ponto de extremidade usar o protocolo de negociação Windows para escolher NTLM ou Kerberos. Se um método de autorização específico (NTLM ou Kerberos) for especificado em um ponto de extremidade, ele só poderá usar aquele método. Se o ponto de extremidade oposto for configurado para usar só o outro método, os pontos de extremidade não poderão conectar-se entre si. Para obter mais informações sobre esses métodos, consulte Tipos de autenticação de ponto de extremidade.
Observação |
---|
Para obter informações sobre esse ponto de extremidade, consulte Ponto de extremidade de espelhamento de banco de dados. |
Uma conexão de espelhamento de banco de dados usa Autenticação do Windows (a Interface do Provedor de Suporte de Segurança (SSPI)) ou autenticação baseada em certificado.
Autenticação do Windows
Sob autenticação do Windows, cada instância de servidor faz o logon para o outro lado usando as credenciais da conta de usuário do Windows sob o qual o processo está sendo executado. Por isto, a Autenticação do Windows exige que os serviços SQL Server sejam executados como usuários de domínio em domínios confiáveis ou como serviços de rede.
Para autenticar ambas as extremidades de uma conexão, a Autenticação do Windows usa as credenciais da conta de usuário de Windows na qual as instâncias de SQL Server estão sendo executadas. Então, a conta do usuário de cada instância de servidor deve ter as permissões necessárias para fazer o logon e enviar mensagens a cada uma das outras instâncias de servidor.
Para obter um exemplo da configuração de uma sessão de espelhamento de banco de dados usando 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 de servidor não estão em domínios confiáveis ou quando o SQL Server estiver executando como um serviço local, a Autenticação do Windows é indisponível. Em tais casos, em vez de credenciais de usuário, são exigidos certificados para autenticar solicitações de conexão. O ponto de extremidade do espelhamento de cada instância de servidor deve ser configurado com seu próprio certificado localmente criado.
O método de criptografia é estabelecido quando o certificado é criado. Para obter mais informações, consulte Como permitir que o espelhamento de banco de dados use certificados para conexões de saída (Transact-SQL). Administre 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 de 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 a Server_B. Server_B usa a chave pública do certificado de Server_A para descriptografar o cabeçalho da conexão. Se o cabeçalho descriptografado estiver correto, Server_B saberá que o cabeçalho foi criptografado por Server_A, e a conexão é autenticada. Se o cabeçalho descriptografado estiver incorreto, Server_B saberá que a solicitação de conexão não é autêntica e recusará a conexão.
Observação sobre segurança |
---|
Instale somente certificados de origens confiáveis. |
Não há nenhum método automatizado para configurar a segurança de espelhamento de banco de dados que use certificados. O uso de Transact-SQL é obrigatório. Para um exemplo do uso de autenticação baseada em certificado para configurar uma sessão de espelhamento de banco de dados, consulte Exemplo: Configurando espelhamento de banco de dados usando certificados (Transact-SQL).
Criptografia de dados
Por padrão, um ponto de extremidade de espelhamento de banco de dados solicita a criptografia de dados enviados por conexões de espelhamento. Neste caso, os pontos de extremidade podem se conectar apenas a pontos de extremidade que também usam criptografia. A menos que você possa garantir que sua rede está segura, recomendamos que você solicite criptografia para suas conexões de espelhamento de banco de dados. Porém, você pode desabilitar a criptografia ou torná-la suportável, mas não obrigatória. Se a criptografia estiver desabilitada, nunca serão criptografados dados e os pontos de extremidade não poderão se conectar a um ponto de extremidade que solicita criptografia. Se a criptografia for suportada, só serão criptografados dados se o ponto de extremidade suportar ou solicitar criptografia.
Observação |
---|
Os pontos de extremidade de espelhamento criados por SQL Server Management Studio são criados com criptografia obrigató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 de ALGORITHM em uma instrução CREATE ENDPOINT ou instrução ALTER ENDPOINT:
Valor de ALGORITHM |
Descrição |
---|---|
RC4 |
Especifica que o ponto de extremidade deve usar o algoritmo RC4. Este é o padrão. |
AES |
Especifica que o ponto de extremidade deve usar o algoritmo AES. |
AES RC4 |
Especifica que os dois pontos de extremidade negociarão por um algoritmo de criptografia com esse ponto de extremidade, dando preferência ao algoritmo AES. |
RC4 AES |
Especifica que os dois pontos de extremidade negociarão por um algoritmo de criptografia com esse ponto de extremidade, dando preferência ao algoritmo RC4. |
Se os pontos de extremidade especificarem ambos os algoritmos, mas em ordens diferentes, vence o ponto de extremidade que aceita a conexão.
Observação |
---|
Embora consideravelmente mais rápido que AES, RC4 é um algoritmo relativamente fraco, enquanto AES é um algoritmo relativamente forte. Então, nós recomendamos que você use o algoritmo AES. |
Para obter informações sobre a sintaxe Transact-SQL para especificar criptografia, consulte CREATE ENDPOINT (Transact-SQL).
Para configurar segurança de transporte de uma instância do servidor de espelhamento de banco de dados
Consulte também