Tenho um aplicativo de produção em execução no Azure com um Azure SQL Server e um banco de dados SQL dentro dele. No meu aplicativo, todos os usuários são criados no nível do banco de dados com suas senhas.
Preciso migrar esse banco de dados para outro locatário do Azure exportando e importando um arquivo BACPAC. Após a importação, posso ver que os usuários são transferidos, mas não consigo fazer login por meio de uma senha existente. Suspeito que isso seja devido a alterações de SID, que causam uma incompatibilidade entre os logins e os usuários.
Como posso garantir que todos os usuários permaneçam funcionais após a migração sem exigir que eles redefinam ou alterem suas senhas?
Se entendi sua situação corretamente, acredito que seu problema seja usuários órfãos . Quando isso acontece, o Usuário e seu Login correlato são desconectados um do outro e precisam ser remapeados. Você pode fazer isso manualmente para cada Usuário órfão por meio do
ALTER USER
comando assim:ALTER USER <user_name> WITH Login = <login_name>;
Como alternativa, você pode usar
sp_change_users_login
para informar quais usuários estão órfãos e corrigi-los com oAuto_Fix
comando. (Observe que esse procedimento supostamente será removido em uma versão futura do SQL Server, mas o histórico da Microsoft em realmente seguir com isso é pequeno.)Ao restaurar um arquivo BACPAC do Banco de Dados SQL do Azure para o SQL Server, as senhas de usuário podem não funcionar. Isso ocorre porque, por motivos de segurança, as senhas são alteradas em segundo plano durante o processo de exportação. Esse comportamento é intencional. Para resolver o problema, você pode seguir as etapas abaixo:
Cópia