After a database restoration you always need to fix the orphan users (between the restored database and the master database)
Here is a script that is doing that for a database. You only need to precise the database you want to use (use databasename must be replaced by the concerned database)
/*-------------------------------------------
-- This Job parses the whole users in
-- previously restored database
-- and autofix the logins
---------------------------------------------
--
-- Created by: Arnaud Degraeve
-- Date: 2012-16-03
-- Email: sqlserver@arnaud-degraeve.com
--
-------------------------------------------*/
----------------------------------
-- Variables Declaration
----------------------------------
DECLARE @login nvarchar(50)
----------------------------------
-- Variables setting
----------------------------------
USE DatabaseName
----------------------------------
-- Prepares a cursor containing
-- the users
----------------------------------
DECLARE logins_cursor CURSOR FOR
SELECT
l.name
FROM
sys.database_principals u
INNER JOIN ys.server_principals l
ON u.sid=l.sid
----------------------------------
-- Open the cursor
----------------------------------
OPEN logins_cursor
FETCH NEXT
FROM logins_cursor INTO @login
WHILE @@FETCH_STATUS = 0
BEGIN
----------------------------------
-- Autofix each user
----------------------------------
EXEC sp_change_users_login 'Auto_Fix', @login
FETCH NEXT FROM logins_cursor INTO @login
END
----------------------------------
-- Closes cursor and releases
-- the memory
----------------------------------
CLOSE logins_cursor
DEALLOCATE logins_cursor