Temos 2 servidores em um grupo AlwaysOn.
Embora as contas de usuário em cada banco de dados sincronizado existam em ambos os servidores, os logons no nível da instância do banco de dados só existem em um dos servidores. Ou seja, DBINSTANCE->Security->Logins estão faltando em um servidor.
Portanto, quando há um failover, recebo falhas de login no segundo servidor (que não possui os logins de nível de instância correspondentes).
Como faço para superar este problema? Eu deveria configurar a conta de usuário de uma maneira especial?
Meu entendimento é que, se você não estiver usando Bancos de Dados Contidos , precisará garantir que os logins sejam criados manualmente em outras instâncias.
Algo como o script do SQLSoldier , publicado originalmente no artigo Transferindo logins para um espelho de banco de dados , deve funcionar.
Você deve usar um Banco de Dados Contido ou deve recriar os usuários no(s) outro(s) servidor(es) com o mesmo hash de senha e SID.
Um script para fazer isso é fornecido pela Microsoft: Como transferir logins e senhas entre instâncias do SQL Server
A solução de Mark estava parcialmente correta, mas sua solução recomendada era para bancos de dados espelhados, em oposição ao AlwaysOn, que é o que as perguntas pedem.
Estou respondendo ao post depois de muito tempo, mas pode ajudar alguém com o problema semelhante. O PowerShell pode ser usado para copiar logons da réplica primária para réplicas secundárias. Os detalhes podem ser encontrados aqui https://maq.guru/synchronizing-sql-server-logins-in-an-always-on-availability-group/ .
Divulgação completa: Eu possuo o site acima.
O script do PowerShell:
Você deve usar os logins de domínio do Windows e criá-los em todas as instâncias, como o SID é gerenciado pelo Active Directory você poderá acessar em todas as réplicas membros do grupo de disponibilidade caso o login exista na réplica primária. outra opção, você deve usar um certificado.