Publicado el 28 de Mayo del 2018
1.066 visualizaciones desde el 28 de Mayo del 2018
115,0 KB
2 paginas
Creado hace 12a (01/08/2012)
SQL Server: "Error '15023' User or role already exists in
the current database" when you perform restore database
from backup
Después de restaurar una base de datos de Microsoft SQL Server (.bak) de copia de
seguridad o de anexar un .mdf, puede aparecer un "Error '15023 'El usuario o el rol ya
existe en la base de datos actual" cuando se utiliza la funcionalidad "User Mapping"
dentro del SQL Server Management Studio al otorgar a los usuarios los permisos
necesarios en la nueva base de datos. Esto suele desconcertar, ya que un restore de
una copia de seguridad de base de datos nos debería devolver ésta a su estado
original. Este error se debe a los SID (Security Identification numbers), que no son
coincidentes o están "huérfanos" en la tabla sysusers.
Para resolver este problema podemos usar el procedimiento almacenado de SQL
Server llamado sp_change_users_login.
La sintaxis de sp_change_users_login es:
sp_change_users_login [ @Action= ] 'action'
[ , [ @UserNamePattern= ] 'user' ]
[ , [ @LoginName= ] 'login' ]
[ , [ @Password= ] 'password' ]
[;]
Pasos a seguir
1. Cámbiese a la BBDD objetivo.
o use mydatabasename
2. Liste los SID problemáticos.
Muestra una lista de los usuarios y sus identificadores de seguridad
correspondientes (SID) en la base de datos actual que no están vinculados a
cualquier inicio de sesión. Usuario, login y password deben ser NULL o no
especificarse. Este paso es informativo y por lo tanto opcional.
o exec sp_change_users_login @Action='Report'
3. Arregle los SID problemáticos:
Se vinculará el usuario especificado en la base de datos actual a un inicio de
sesión de SQL Server existente. Debe especificarse Usuario y login de inicio de
sesión, y la contraseña debe ser NULL o no especificarse. Los nombres de
usuarios a proporcionar son los obtenidos en el paso 2.
o exec sp_change_users_login @Action='Update_One',
@UserNamePattern='MyLoginID', @LoginName='MyLoginID'
Repita esta última sentencia para todos los logins problemáticos.
4. Verifique que todo está correcto
Repita la instrucción SQL con Action = 'Report' como se describe en el paso 2
para confirmar que hemos resuelto todos los nombres de inicio de sesión. Si no
se devuelven registros después de ejecutar Action = 'Report' seguramente el
problema habrá desaparecido.
Trate de logarse usando alguno de los logins que tuviera problemas.
MSDN Reference: http://msdn.microsoft.com/en-us/library/ms174378.aspx
Comentarios de: SQL Server: "Error '15023' User or role already exists in the current database" when you perform restore database from backup (0)
No hay comentarios