If you restore a database from one server on to a foreign server, you might need a way to bring over the SQL user accounts too. This occurs frequently when you are restoring an application to a test/backup server that does not have the same user accounts configured.
You can easily script out the current users by running the following script (originally from Microsoft): https://github.com/burmat/burmatscripts/blob/master/mssql/export_logins.sql
And executing the resulting stored procedure:
Paste the output of this stored procedure into the destination server to bring the user account in with their original SID's and current passwords. You can run the following query on both servers to compare the SID's if you wish:
select loginname, sid from master.sys.syslogins
To get a list of all server-level permissions, you can run the following query to dertmine if something was left over or orphaned after user login changes:
SELECT name, permission_name, principal_id, sidFROM master.sys.server_permissionsLEFT JOIN master.sys.server_principalsON grantee_principal_id = principal_id
USE [DB_NAME]GOsp_changedbowner 'sa'GO