Eu tive que mover vários bancos de dados do SQL Server 2008 para o nosso novo servidor db, para fazer backup de todos (arquivos .bak), copiar esses arquivos para a nova caixa e restaurá-los (tudo feito usando o SQL Management Studio).
Tudo deu certo, mas agora acho que não consigo fazer login em nenhum banco de dados usando a conta do SQL Server que continua funcionando no antigo RDBMS. Meu login autenticado pelo Windows ainda funciona bem por acaso.
Tive a ideia de que todos os usuários e permissões seriam duplicados no novo servidor de banco de dados, mas parece que algo deu errado em algum lugar. Gostaria muito de receber comentários / sugestões / ofertas de ajuda ;-)
Isso é conhecido como "usuários órfãos". Aqui estão duas maneiras de corrigi-lo
Se possível, restaure o banco de dados mestre original como "loginsource" e sys.server_principals possui informações suficientes para gerar todos os logons do SQL Server e do Windows. Ou seja, os SIDs e a senha criptografada
Se você usar apenas logons do Windows, poderá executá-lo por banco de dados para gerar um script
Roteiro:
fonte
Idealmente, você criaria scripts para os usuários e permissões antes de fazer a restauração. Se isso não tiver acontecido, você precisará consertar as coisas após o fato, e as chances são de que alguma coisa será perdida, mas você deverá conseguir 90% do caminho até lá.
A primeira coisa que você precisa verificar é se os mesmos logons existem no novo servidor. Caso contrário, você deve descobrir se está OK para os logins serem criados no novo servidor. Nunca assuma que eles deveriam ser criados, poderia haver uma boa razão para que eles não existissem em primeiro lugar. Em seguida, você pode criá-los pesquisando a tabela de sysusers.
Você pode corrigir os usuários órfãos executando algo semelhante ao seguinte:
Este código funcionará para o SQL2008, mas foi escrito para ser compatível com versões anteriores do SQL2000.
fonte
Você pode consultar o seguinte URL para corrigir as permissões de usuário do banco de dados
http://mywindowsblog.com/?p=287
fonte
Aqui está um artigo rápido que explica a solução:
Restaurando logons órfãos no SQL Server após restaurar o banco de dados
fonte