Configurando contas de logon para o espelhamento de banco de dados

Para que duas instâncias de servidor se comuniquem em uma sessão de espelhamento de banco de dados, é necessário acesso mútuo entre as conta de logon de cada instância. Além disso, cada conta de logon exige permissão de conexão com o ponto de extremidade do espelhamento de banco de dados da outra instância. Para obter informações sobre esse ponto de extremidade, consulte Ponto de extremidade de espelhamento de banco de dados.

Criando logons de usuário

As informações nos bancos de dados dos sistemas master ou msdb não podem ser espelhadas. Para que a troca de função funcione efetivamente para todos os usuários do banco de dados, portanto, os logons de usuário com permissões de conexão na instância de servidor principal também devem existir na instância de servidor espelho.

O impacto desse requisito depende de os parceiros de espelhamento serem executados como a mesma conta de usuário do domínio:

  • Se os parceiros forem executados como a mesma conta de usuário do domínio, os logons de usuário corretos existirão automaticamente em ambos os bancos de dados master. Isso simplifica a configuração de segurança do banco de dados e é recomendado.

  • Se as instâncias de servidor parceiro forem executadas como contas de usuário diferentes, os logons de usuário na instância de servidor principal deverão ser reproduzidos manualmente na instância de servidor espelho. Para evitar usuários órfãos depois de uma troca de função, você deve manter o mesmo conjunto de logons de usuário habitualmente nos bancos de dados principal e espelho. Porém, se qualquer usuário ficar órfão após uma troca de função, você poderá configurar seu logon a qualquer momento.

Criando um logon para uma conta diferente

Se duas instâncias de servidor forem executadas como contas diferentes, o administrador do sistema deverá usar a instrução CREATE LOGIN Transact-SQL para criar um logon para a conta de serviço de inicialização da instância remota na tabela syslogins do banco de dados master de cada instância de servidor. Para obter mais informações, consulte CREATE LOGIN (Transact-SQL).

Observação importanteImportante

Se você executar o SQL Server em uma conta fora do domínio, deverá usar certificados. Para obter mais informações, consulte Usando certificados para espelhamento de banco de dados.

Por exemplo, para a instância de servidor sqlA, executada no logonA, conectar-se com a instância de servidor sqlB, executada no logonB, o logonA deve estar na tabela syslogins no sqlB e o logonB deve estar na tabela syslogins no sqlA. Além disso, para uma sessão de espelhamento de banco de dados que inclui uma instância de servidor testemunha (sqlC) e na qual as três instâncias de servidor são executadas em contas de domínio diferentes, devem ser criados os seguintes logons:

Na instância...

Crie logons para e conceda permissão de conexão para ...

sqlA

sqlB e sqlC

sqlB

sqlA e sqlC

sqlC

sqlA e sqlB

ObservaçãoObservação

É possível conectar-se com a conta de serviço de rede usando a conta da máquina em vez de um usuário de domínio. Se a conta da máquina for usada, ela deve ser adicionada como um usuário na outra instância de servidor.

Concedendo permissão de conexão

Quando um logon tiver sido criado em uma instância de servidor, deve ser concedida permissão para que ele se conecte com o ponto de extremidade de espelhamento de banco de dados da instância de servidor. O administrador do sistema concede a permissão de conexão usando uma instrução GRANT Transact-SQL. Para obter mais informações, consulte GRANT (Transact-SQL).

ObservaçãoObservação

Para obter informações sobre este ponto de extremidade, consulte Ponto de extremidade de espelhamento de banco de dados.