• This is an old problem with sql2000 too: restoring a database on a different instance, logins to database become invalid.

    The solution is create login on the restoring instance with the same sid of the source instance

    See here: http://msdn.microsoft.com/en-us/library/ms189751.aspx

    CREATE LOGIN loginName { WITH <option_list1> | FROM <sources> }

    <option_list1> ::=

    PASSWORD = { 'password' | hashed_password HASHED } [ MUST_CHANGE ]

    [ , <option_list2> [ ,... ] ]

    <option_list2> ::=

    SID = sid | DEFAULT_DATABASE = database

    | DEFAULT_LANGUAGE = language

    | CHECK_EXPIRATION = { ON | OFF}

    | CHECK_POLICY = { ON | OFF}

    | CREDENTIAL = credential_name

    <sources> ::=

    WINDOWS [ WITH <windows_options>[ ,... ] ]

    | CERTIFICATE certname

    | ASYMMETRIC KEY asym_key_name

    <windows_options> ::=

    DEFAULT_DATABASE = database

    | DEFAULT_LANGUAGE = language