Solucion al error: 15023 de Microsoft SQL Server
Esta semana me encontré con el siguiente caso:
El área de desarrollo de una empresa mantiene un aplicativo el cual depende de una base de datos, los desarrolladores tienen como practica, hacer un respaldo de la base productiva diariamente, enviarla a otro servidor SQL y restaurarla allí para realizar pruebas. Ambos servidores SQL tienen configurada la autenticación en modo Mixto, es decir con usuarios locales y usuarios de Active Directory. Al restaurar la base en el servidor de testing todos los permisos se mantienen para los usuarios de AD, pero los permisos de usuarios locales se pierden a pesar de existir un usuario local con el mismo nombre en el servidor de testing. Y si intentas otorgarle el permiso recibes el siguiente mensaje de error:
.
EXEC sp_change_users_login 'Auto_Fix', 'usuario'
En el siguiente ejemplo cargo la base de nombre "Productiva", y reparo el login del usuario "JManzur".
USE Productiva
El área de desarrollo de una empresa mantiene un aplicativo el cual depende de una base de datos, los desarrolladores tienen como practica, hacer un respaldo de la base productiva diariamente, enviarla a otro servidor SQL y restaurarla allí para realizar pruebas. Ambos servidores SQL tienen configurada la autenticación en modo Mixto, es decir con usuarios locales y usuarios de Active Directory. Al restaurar la base en el servidor de testing todos los permisos se mantienen para los usuarios de AD, pero los permisos de usuarios locales se pierden a pesar de existir un usuario local con el mismo nombre en el servidor de testing. Y si intentas otorgarle el permiso recibes el siguiente mensaje de error:
.
User, group, or role 'usuario' already exists in the current database. (Microsoft SQL Server, Error: 15023)
.
Para solucionarlo, si la situación de ustedes es un caso puntual, es decir una base de datos que no se restaurará diariamente, lo que deben hacer es una query sobre la base con el siguiente formato:
.
USE Nombre_de_la_base.
EXEC sp_change_users_login 'Auto_Fix', 'usuario'
En el siguiente ejemplo cargo la base de nombre "Productiva", y reparo el login del usuario "JManzur".
USE Productiva
EXEC sp_change_users_login 'Auto_Fix', 'JManzur'
No hay comentarios:
Publicar un comentario