• Let me try to explain a little bit better:

    Product server=SERV1

    UAC Server=SERV2

    On SERV1 you have a local windows group called MyDevs. Lets say this group has SID 0x00001.

    The group is registered as a login on SQL Server. In sys.server_principals you will find this group with the same SID as the local Windows group.

    The login as granted permissions to a database, and a database user is created for the group. If you query sys.database_principals (in the correct database), you'll find a user with the same SID as the login and the Windows group. It's the SID that is used to map from a database user to a login and finally to a Windows/AD user/group.

    On SERV2 you also have a local Windows group for your developers. The problem is that this group has a different SID than on SERV2. Let's say the SID for the group on SERV2 is 0x00002.

    I'm guessing that you have registered the group as a login prior to restoring the database. You'll then have a row in sys.server_principals with SID 0x00002.

    When you restore the database, you also restore the database users, and when you query sys.database_principals the user will still have SID 0x00001. There is now a mismatch between the SID of database user and the SID of the login.

    What we need to do is update the SID of the database user to the SID of the login.

    This is done by executing ALTER USER <user name> WITH LOGIN=<login name>. This will set the SID of the user to the SID of the login.

    Hope this makes sense.