Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Aplica-se a:SQL Server
Este exemplo mostra todos os estágios necessários para criar uma sessão de espelhamento de banco de dados usando autenticação baseada em certificado. Os exemplos neste tópico usam Transact-SQL. A menos que você possa garantir que sua rede é segura, recomendamos que você use criptografia para conexões de espelhamento de banco de dados.
Ao copiar um certificado para outro sistema, use um método de cópia seguro. Tenha muito cuidado para manter todos os seus certificados seguros.
Exemplo
O exemplo a seguir demonstra o que deve ser feito em um parceiro que reside em HOST_A. Neste exemplo, os dois parceiros são as instâncias de servidor padrão em três sistemas de computador. As duas instâncias de servidor são executadas em domínios não confiáveis do Windows, portanto, a autenticação baseada em certificado é necessária.
O papel principal inicial é assumido por HOST_A, e o papel de espelho é assumido por HOST_B.
A configuração do espelhamento de banco de dados usando certificados envolve quatro estágios gerais, dos quais três estágios - 1, 2 e 4 - são demonstrados por este exemplo. Estas fases são as seguintes:
Configurando conexões de saída
Este exemplo mostra as etapas para:
Configurando Host_A para conexões de saída.
Configurando Host_B para conexões de saída.
Para obter informações sobre esse estágio de configuração do espelhamento de banco de dados, consulte Permitir que um ponto de extremidade de espelhamento de banco de dados use certificados para conexões de saída (Transact-SQL).
Configurando conexões de entrada
Este exemplo mostra as etapas para:
Configurando Host_A para conexões de entrada.
Configurando Host_B para conexões de entrada.
Para obter informações sobre este estágio de configuração do espelhamento de banco de dados, consulte Permitir que um Ponto de Extremidade de Espelhamento de Banco de Dados Use Certificados para Conexões de Entrada (Transact-SQL).
Criando o banco de dados espelho
Para obter informações sobre como criar um banco de dados espelho, consulte Preparar um banco de dados espelho para espelhamento (SQL Server).
Configurando conexões de saída
Para configurar Host_A para conexões de saída
No banco de dados mestre, crie a chave mestra do banco de dados, se necessário. Substitua
<password>
por uma senha válida.USE master; CREATE MASTER KEY ENCRYPTION BY PASSWORD = '<password>'; GO
Crie um certificado para esta instância do servidor.
USE master; CREATE CERTIFICATE HOST_A_cert WITH SUBJECT = 'HOST_A certificate'; GO
Crie um ponto de extremidade de espelhamento para a instância do servidor usando o certificado.
CREATE ENDPOINT Endpoint_Mirroring STATE = STARTED AS TCP ( LISTENER_PORT=7024 , LISTENER_IP = ALL ) FOR DATABASE_MIRRORING ( AUTHENTICATION = CERTIFICATE HOST_A_cert , ENCRYPTION = REQUIRED ALGORITHM AES , ROLE = ALL ); GO
Faça backup do certificado HOST_A e copie-o para outro sistema, HOST_B.
BACKUP CERTIFICATE HOST_A_cert TO FILE = 'C:\HOST_A_cert.cer'; GO
Usando qualquer método de cópia segura, copie C:\HOST_A_cert.cer para HOST_B.
Para configurar Host_B para conexões de saída
No banco de dados mestre, crie a chave mestra do banco de dados, se necessário.
USE master; CREATE MASTER KEY ENCRYPTION BY PASSWORD = '<Strong_Password_#2>'; GO
Faça um certificado na instância do servidor HOST_B.
CREATE CERTIFICATE HOST_B_cert WITH SUBJECT = 'HOST_B certificate for database mirroring'; GO
Crie um ponto de extremidade de espelhamento para a instância do servidor no HOST_B.
CREATE ENDPOINT Endpoint_Mirroring STATE = STARTED AS TCP ( LISTENER_PORT=7024 , LISTENER_IP = ALL ) FOR DATABASE_MIRRORING ( AUTHENTICATION = CERTIFICATE HOST_B_cert , ENCRYPTION = REQUIRED ALGORITHM AES , ROLE = ALL ); GO
Faça uma cópia de segurança do certificado do HOST_B.
BACKUP CERTIFICATE HOST_B_cert TO FILE = 'C:\HOST_B_cert.cer'; GO
Usando qualquer método de cópia segura, copie C:\HOST_B_cert.cer para HOST_A.
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).
Configurando conexões de entrada
Para configurar o Host_A para conexões de entrada
Crie um login no HOST_A para HOST_B. Substitua
<password>
por uma senha válida.USE master; CREATE LOGIN HOST_B_login WITH PASSWORD = '<password>'; GO
--Crie um usuário para esse login.
CREATE USER HOST_B_user FOR LOGIN HOST_B_login; GO
--Associe o certificado ao usuário.
CREATE CERTIFICATE HOST_B_cert AUTHORIZATION HOST_B_user FROM FILE = 'C:\HOST_B_cert.cer' GO
Conceda permissão CONNECT no login para o ponto de extremidade de espelhamento remoto.
GRANT CONNECT ON ENDPOINT::Endpoint_Mirroring TO [HOST_B_login]; GO
Para configurar Host_B para conexões de entrada
Crie um login no HOST_B para HOST_A.
USE master; CREATE LOGIN HOST_A_login WITH PASSWORD = '=Sample#2_Strong_Password2'; GO
Crie um usuário para esse login.
CREATE USER HOST_A_user FOR LOGIN HOST_A_login; GO
Associe o certificado ao usuário.
CREATE CERTIFICATE HOST_A_cert AUTHORIZATION HOST_A_user FROM FILE = 'C:\HOST_A_cert.cer' GO
Conceda a permissão CONNECT ao login para o endpoint de espelhamento remoto.
GRANT CONNECT ON ENDPOINT::Endpoint_Mirroring TO [HOST_A_login]; GO
Importante
Se você pretende executar no modo de alta segurança com failover automático, você deve repetir as mesmas etapas de configuração para configurar a testemunha para conexões de entrada e saída. Configurar as conexões de entrada quando uma testemunha está envolvida requer que você configure logins e usuários para a testemunha em ambos os parceiros e para ambos os parceiros na testemunha.
Para obter mais informações, consulte Permita que um ponto de extremidade de espelhamento de banco de dados faça o uso de certificados para conexões de entrada (Transact-SQL).
Criando o banco de dados espelho
Para obter informações sobre como criar um banco de dados espelho, consulte Preparar um banco de dados espelho para espelhamento (SQL Server).
Configurando os parceiros de espelhamento
Na instância do servidor espelho no HOST_B, defina a instância do servidor em HOST_A como o parceiro (tornando-a a instância inicial do servidor principal). Substitua um endereço de rede válido por
TCP://HOST_A.Mydomain.Corp.Adventure-Works``.com:7024
. Para obter mais informações, consulte Especificar um endereço de rede do servidor (espelhamento de banco de dados).--At HOST_B, set server instance on HOST_A as partner (principal server): ALTER DATABASE AdventureWorks SET PARTNER = 'TCP://HOST_A.Mydomain.Corp.Adventure-Works.com:7024'; GO
Na instância do servidor principal no HOST_A, defina a instância do servidor em HOST_B como o parceiro (tornando-a a instância inicial do servidor espelho). Substitua um endereço de rede válido por
TCP://HOST_B.Mydomain.Corp.Adventure-Works.com:7024
.--At HOST_A, set server instance on HOST_B as partner (mirror server). ALTER DATABASE AdventureWorks SET PARTNER = 'TCP://HOST_B.Mydomain.Corp.Adventure-Works.com:7024'; GO
Este exemplo pressupõe que a sessão será executada no modo de alto desempenho. Para configurar esta sessão para o modo de alto desempenho, na instância do servidor principal (em HOST_A), defina a segurança da transação como OFF.
--Change to high-performance mode by turning off transaction safety. ALTER DATABASE AdventureWorks SET PARTNER SAFETY OFF GO
Observação
Se pretender executar em modo de alta segurança com failover automático, mantenha a segurança das transações configurada para FULL (a configuração padrão) e adicione o testemunho o mais rapidamente possível após a execução da segunda instrução SET PARTNER 'partner_server'. Observe que a testemunha deve primeiro ser configurada para conexões de saída e entrada.
Tarefas relacionadas
Preparar um banco de dados espelho para espelhamento (SQL Server)
Gerenciamento de logins e trabalhos após a troca de função (SQL Server)
Gerir Metadados ao Disponibilizar uma Base de Dados noutra Instância do Servidor (SQL Server) (SQL Server)
Solucionar problemas de configuração de espelhamento de banco de dados (SQL Server)
Ver também
Segurança de Transporte de para espelhamento de banco de dados e grupos de disponibilidade Always On (SQL Server)
Especificar um endereço de rede do servidor (espelhamento de banco de dados)
O endpoint de espelhamento de base de dados (SQL Server)
Usar certificados para um endpoint de espelhamento de base de dados (Transact-SQL)
ALTERAR BASE DE DADOS (Transact-SQL)
Central de Segurança para o Mecanismo de Banco de Dados SQL Server e o Banco de Dados SQL Azure