Eu tenho o SQL Server 2012 e estou usando usuários de domínio (do Active Directory). Por engano, os usuários foram excluídos do AD, criados com logins e senhas idênticos (mas com SIDs diferentes), excluídos e restaurados os originais - no final, usuários antigos com SIDs antigos eram recriados.
Quase tudo parece estar bem novamente, exceto por um usuário. O SQL Server de alguma forma ficou com o SID errado para um usuário (todos os outros usuários estão bem) e não está obtendo o SID correto do AD. Eu verifiquei SID em ambos os lugares - SIDs no AD não é o mesmo que no SQL Server.
Como resultado desta "incompatibilidade de SID", este usuário não pode acessar o banco de dados. Se tentar, falha e fica:
- "Erro: 18456, Gravidade: 14, Estado: 5".
- Falha no login do usuário 'DomainX \ UserX'. Razão: não foi possível encontrar um login que corresponda ao nome fornecido.
Eu apaguei o usuário do servidor e todos os bancos de dados que foram usados, então adicionei - e novamente tive o SID errado! E esse "novo" usuário ainda não consegue se conectar ao banco de dados.
Há duas coisas que "mói minhas engrenagens":
- como os SIDs de outros usuários são compatíveis e incompatíveis para apenas um?
- se outros usuários estiverem bem (eles têm SIDs antigos), posso supor que não há problemas no controlador de domínio?
Eu tenho encontrado muito sobre diferentes manipulações com dois logins de usuários existentes (ou órfãos?), mas não consegui encontrar apenas a mudança do SID.
Mas a questão principal é - como alterar o SID de um usuário no MS SQL Server (versão 11.0.)? Isso é possível?
UPDATE
Enquanto continuo pensando nisso, percebi que tenho uma pergunta errada. Como esse UserX é um usuário de domínio, não é um usuário local do SQL Server - isso significa que não posso alterar o SID diretamente no SQL Server.
Eu tenho dois servidores idênticos (ServerA e ServerB) que usam os mesmos usuários do AD. No ServerB, o UserX tem o SID correto e pode se autenticar normalmente no SQL Server (o SID correto significa o mesmo que no AD). Para ser claro - o UserX tem um SID errado no ServerA.
Pergunta - se esse usuário é usuário de domínio do Active Directory, onde e como altera seu SID? Se o UserX puder autenticar no ServerB, isso significa que o SID deve ser alterado no ServerA dentro dos Usuários do Windows?
Por favor corrija-me, se algumas ideias ou ideias tiverem seguido caminhos errados.
UPDATE 2
Eu encontrei uma solução para o meu problema, embora não tenha respondido a pergunta. Para qualquer pessoa interessada - minhas faculdades encontraram usuários deletados com o SID errado no AD. Esse usuário foi renovado e agora no AD ambos os usuários estão ativos - o bom e o ruim . Os usuários reconhecidos do SQL Server e o problema com o login do usuário e a incompatibilidade de SID de alguma forma se resolveram - o UserX no ServerA agora tem direito SID e pode acessar o banco de dados. Agora tudo funciona como deveria ser! :)