Tenho 2 servidores SQL executando o SQL Server 2019. Cada um deles tem um login SQL que usa autenticação do Windows (um grupo do AD) "SG-GroupA" e o grupo tem 5 usuários do Windows.
Cada um dos servidores tem um banco de dados chamado DbFoo e o login para SG-GroupA é mapeado para DbFoo e a associação de função para o banco de dados é pública e db_datareader.
Verifiquei se o login existe e se o usuário existe em ambos os bancos de dados. Quando um usuário desse grupo faz login no SQL Server e tenta consultar o DbFoo, no Servidor A ele obtém um resultado muito bom. Quando ele executa a mesma consulta no Servidor B, ele obtém um erro "O banco de dados DBFoo não está acessível".
Como um teste adicional no Server BI criou um banco de dados completamente novo com um único usuário SG-GroupA nele, e novamente um erro é lançado quando alguém tenta consultar uma tabela no DB. Executar o mesmo teste no Server A não lança erros e está tudo bem. Onde posso começar a depurar esse problema?
Se o usuário em questão também corresponder a um login individual no Servidor B, você poderá ter conflitos como este.
Ou seja, além de ser um membro do SG-GroupA, eles também têm seu próprio login no servidor? Se sim, pode haver interações inesperadas, especialmente se o login individual tiver quaisquer direitos negados a ele. Ou se o login conectado ao grupo estiver habilitado, mas o login individual estiver desabilitado.
Se uma pessoa obtém acesso a uma instância do SQL por meio de um grupo do Active Directory, é melhor que ela não tenha acesso também por meio de um login individual conectado ao Windows.
Veja também: a boa resposta de Hannah Vernon para uma pergunta semelhante aqui .
Como @doug Deden mencionou, o usuário que estava fazendo login para testar também foi adicionado aos SQL Servers como um login direto. Então, essencialmente, as permissões estavam interferindo umas nas outras.
domain\UserA era um membro do Grupo AD SG-GroupA. Além disso, ele também foi adicionado ao servidor como um login diretamente em security -> logins. As permissões conflitavam entre si, pois o grupo AD tinha permissões mais altas que tinham sido explicitamente negadas ao login dos usuários. Depois que eu soltei o login e apenas deixei o acesso dele habilitado através do grupo AD, tudo começou a funcionar.