sábado, 22 de noviembre de 2008

Problema con los permisos de usuario al restaurar BD en SQL Server distinto

Sintomas:
Restauramos una base de datos en un servidor distinto configurado con los mismos usuarios que el original. No se puede hacer login con un usuario que aparentemente tiene permisos. El usuario esta creado en SQL server, no en Active Directory.

Solución:
Si el usuario se llama "pepito", debe ejecutarse la siguiente consulta SQL:
execute sp_change_users_login 'Update_One', 'pepito' , 'Pepito'

Comentarios:
El identificador único de usuario (login) es distinto en los dos servidores de base de datos. El usuario en la base de datos por tanto no puede hacer login. Es lo que se llama usuarios huerfanos.
Este procedimiento almacenado vuelve a unir las familias.
Es un problema viejo pero que ocurre periodicamente a los que movemos bases de datos de un sitio a otro, y el problema es entonces recordar el nombre procedimiento almacenado.

No hay comentarios: