Después de hacer una Restauración de una base de datos es probable que nos topemos con que no podemos accesar a dicha base de datos y se nos muestre un error como el siguiente:
"The table either does not exist or the current user does not have permissions on that table"
"La entidad de seguridad de servidor "usuario" no puede tener acceso a la base de datos "MI_BASE_DE_DATOS" en el contexto de seguridad actual."
"La base de Datos no está Accesible"
Esto es debido a que el propietario (owner) de nuestra base de datos quedó des-asignado de la base de datos que fue restaurada. Lo que algunos llaman "Usuario Huerfano"
La solución es sencilla:
primero que nada debes loguearte a tu servidor de bases de datos con el usuario SA una vez logueado Ejecuta el siguiente Stored prodedure en la base de datos que quedó con el problema de usuario:
USE MI_BASE_DE_DATOS
SP_CHANGE_USERS_LOGIN 'REPORT'
El resultado serán los usuarios huérfanos de la bd:
Ahora, cámbiate a la base de datos Master y ejecutas el siguiente SP sustituyendo los valores de los parámetros por tus valores.
Use Master
exec sp_addlogin @loginame = 'Mi_usuario', @passwd= 'Mi_password', @defdb = 'Mi_Base_De_Datos'
Quizá te marque un error como el siguiente:
La entidad de seguridad de servidor 'Mi_usuario' ya existe.
The server principal 'Mi_usuario' already exists.
No te preocupes, es solamente el paso 1, eso quiere decir que ya existe el usuario en el contexto del servidor. Ahora procedemos a reparar el usuario Huérfano con el siguiente SP. pero antes nos cambiamos a la base de datos que tenía el problema del usuario
Use Mi_Base_De_datos
sp_change_users_login 'Update_One', 'Mi_Usuario', 'Mi_usuario'
Comandos completados correctamente.
para comprobar podemos ejecutar nuevamente la siguiente consulta y ya no debería aparecernos el usuario huérfano.
USE MI_BASE_DE_DATOS
SP_CHANGE_USERS_LOGIN 'REPORT'
Para finalizar, cerramos la sesión del usuario SA y nos volvemos a conectar ahora con el usuario que tenía el problema.
Mis Mejores Saludos
Xavier García
"The table either does not exist or the current user does not have permissions on that table"
"La entidad de seguridad de servidor "usuario" no puede tener acceso a la base de datos "MI_BASE_DE_DATOS" en el contexto de seguridad actual."
"La base de Datos no está Accesible"
Esto es debido a que el propietario (owner) de nuestra base de datos quedó des-asignado de la base de datos que fue restaurada. Lo que algunos llaman "Usuario Huerfano"
La solución es sencilla:
primero que nada debes loguearte a tu servidor de bases de datos con el usuario SA una vez logueado Ejecuta el siguiente Stored prodedure en la base de datos que quedó con el problema de usuario:
USE MI_BASE_DE_DATOS
SP_CHANGE_USERS_LOGIN 'REPORT'
El resultado serán los usuarios huérfanos de la bd:
Ahora, cámbiate a la base de datos Master y ejecutas el siguiente SP sustituyendo los valores de los parámetros por tus valores.
Use Master
exec sp_addlogin @loginame = 'Mi_usuario', @passwd= 'Mi_password', @defdb = 'Mi_Base_De_Datos'
Quizá te marque un error como el siguiente:
La entidad de seguridad de servidor 'Mi_usuario' ya existe.
The server principal 'Mi_usuario' already exists.
No te preocupes, es solamente el paso 1, eso quiere decir que ya existe el usuario en el contexto del servidor. Ahora procedemos a reparar el usuario Huérfano con el siguiente SP. pero antes nos cambiamos a la base de datos que tenía el problema del usuario
Use Mi_Base_De_datos
sp_change_users_login 'Update_One', 'Mi_Usuario', 'Mi_usuario'
Comandos completados correctamente.
para comprobar podemos ejecutar nuevamente la siguiente consulta y ya no debería aparecernos el usuario huérfano.
USE MI_BASE_DE_DATOS
SP_CHANGE_USERS_LOGIN 'REPORT'
Para finalizar, cerramos la sesión del usuario SA y nos volvemos a conectar ahora con el usuario que tenía el problema.
Mis Mejores Saludos
Xavier García
No hay comentarios:
Publicar un comentario