Tengo una instancia de SQL Server 2008 R2 Express Edition en casa y otra en un servidor en las instalaciones de un cliente que estoy usando para desarrollar una aplicación usando Access como front-end. Esta aplicación tiene 5 inicios de sesión separados que puedo usar en la cadena de conexión (según el grupo de acceso en el que se encuentre el usuario). La instancia de inicio tiene varias bases de datos, algunas de las cuales no tienen nada que ver con estas aplicaciones
He creado manualmente los inicios de sesión en cada instancia a lo largo del tiempo (y probablemente en un orden diferente).
Espero poder (más de una vez) tomar una copia de seguridad de mi máquina doméstica de la base de datos en la que estoy trabajando y cargarla en la instancia en las instalaciones del cliente usando la restauración, simplemente moviendo los archivos en el conjunto de copia de seguridad al valor real archivos utilizados en este servidor durante el proceso de restauración. Lo que no entiendo es el mapeo entre el usuario de la base de datos y el inicio de sesión.
Pensé que la correspondencia de nombre debería ser suficiente, pero al tratar de solucionar un problema en el que los usuarios de la base de datos restaurada no parecían asignados al inicio de sesión del servidor, me encontré con la declaración de USUARIO ALTER de Transact-SQL y en particular su referencia al uso de WITH LOGIN y alguna discusión sobre un "SID".
Dado que (supongo) que los nombres de inicio de sesión del servidor tienen SID diferentes en cada instancia, ¿significa que después de cargar una copia de seguridad entre instancias tengo que volver a conectar la asignación nuevamente con una serie de comandos ALTER USER WITH LOGIN?
fuente