Cuando hacemos un backup y restauramos la base de datos en otro servidor, nos ocurrirá que los usuarios de la base de datos que existian siguen en la BDD pero que no pueden iniciar sesión por no tener usuario de login
Para solucionar estos usuarios huérfanos lo primero es saber que usuarios no tienen login Para saber los usuarios que no tienen login
USE <base_de_datos>; GO sp_change_users_login @Action='Report'; GO
Para crear el login usaremos un procedimiento del sistema llamado sp_change_users_login
sp_change_users_login [ @Action = ] 'action' [ , [ @UserNamePattern = ] 'user' ] [ , [ @LoginName = ] 'login' ] [ , [ @Password = ] 'password' ] [;]
Si el usuario ya tiene login
EXEC sp_change_users_login 'Auto_Fix', 'usuario'
Si no tiene usuario y queremos recrearlo en el nuevo servidor
USE <base_de_datos>; GO EXEC sp_change_users_login 'Auto_Fix', 'nombre_de_usuario' ,'login', 'password'; GO
USE <base_de_datos>; GO EXEC sp_change_users_login 'Auto_Fix', 'nombre_de_usuario' ,NULL, 'password'; GO
También podemos crear el usuario y lo asignamos a un login existente
ALTER USER <user_name> WITH Login = <login_name>;