Usuarios huerfanos en SQL Server

Imagen de JuanPLG

Hola como va!, hoy voy a ser referencia a un problema muy común, cuando se trabaja con script de creación de login´s y permisos o bien cuando en implementaciones, por lo general de laboratorio, se borran los logins de usuarios.
El problema citado en párrafos anteriores es referido a "usuarios huérfanos en SQL Server", tanto para SQL 70, SQL 2000 como SQL 2005.
Es muy común ver el siguiente error:

Msg 916, Level 14, State 1, Line 1
The server principal "pepe" is not able to access the database "BasePrueba" under the current security context.

Si vamos por la herramienta "sql server management studio", veremos una imagen parecida a la siguiente imagen

De que manera solucionamos esto?, bueno lo primero es tirar un reporte de todas las bases de datos y usuarios huérfanos que pudieran existir, para ello debemos ejecutar el siguiente stored procedure en cada base:

USE mibase
GO
EXEC sp_change_users_login 'report'

Luego si nos devuelve algún registro, detectando algún usuario huérfano, para solucionar el problema y machear el usuario de base de datos con el login de SQL Server, debemos ejecutar el siguiente stored procedure:

EXEC sp_change_users_login 'Update_One', 'pepe', 'pepe'

Bueno, espero sirva y como siempre, abrazo virtual a todos !!!.

JuanPL