Eu suspeito que o seu problema seja usuários órfãos . Basicamente, seus usuários e logins podem ter o mesmo nome, mas eles têm sids diferentes nas diferentes instâncias.
Aqui está um script para mostrar o problema (retirado do link):
USE MASTER
GO
SELECT name as SQLServerLogIn,SID as SQLServerSID FROM sys.syslogins
WHERE [name] = 'YourAppUser'
GO
USE YourAppDB
GO
SELECT name DataBaseID,SID as DatabaseSID FROM sysusers
WHERE [name] = 'YourAppUser'
GO
Ou você pode consertar. Há um procedimento interno para isso. Restaure o banco de dados do primeiro PC para o segundo PC e execute:
USE YourAppDB
GO
exec sp_change_users_login @action='update_one',@usernamepatter='YourAppUser',@loginname='YourAppUser'
GO
Uma vez eu tive que executar isso em um grande número de bancos de dados, então eu tenho, por aí:
execute sp_MSforeachdb 'USE [?]; exec sp_change_users_login @action=''update_one'',@usernamepattern=''YourAppUser'',@loginname=''YourAppUser'''
(Isso usa o procedimento sp_MSforeachdb não documentado para executar esse comando no todo banco de dados.)