理想的には、復元を実行する前に、ユーザーと権限をスクリプト化します。それが行われていない場合は、事後に問題を修正する必要があります。チャンスは見逃される可能性がありますが、その方法の約90%を達成できるはずです。
最初に確認する必要があるのは、同じログインが新しいサーバーに存在するかどうかです。そうでない場合は、新しいサーバーでログインを作成してもよいかどうかを確認する必要があります。それらが作成されるべきだと思い込まないでください。そもそもそれらが存在しなかったのには理由があるのかもしれません。次に、sysusersテーブルを掘り下げて、それらを作成します。
次のようなものを実行して、孤立したユーザーを修正できます。
DECLARE @username varchar(25), @loginsid varbinary(85)
DECLARE fixusers CURSOR
FOR
SELECT UserName = name
FROM sysusers
WHERE issqluser = 1
and (sid is not null and sid <> 0x0)
and suser_sname(sid) is null
and name in (select name from master..syslogins)
ORDER BY name
OPEN fixusers
FETCH NEXT FROM fixusers
INTO @username
WHILE @@FETCH_STATUS = 0
BEGIN
EXEC sp_change_users_login 'update_one', @username, @username
FETCH NEXT FROM fixusers
INTO @username
END CLOSE fixusers
DEALLOCATE fixusers
このコードはSQL2008で機能しますが、SQL2000の下位互換性を持つように作成されています。