meta data de esta página
  •  

Diferencias

Muestra las diferencias entre dos versiones de la página.

Enlace a la vista de comparación

Próxima revisión
Revisión previa
sql:sqlserver:restaurar [102021/11/ 10:40] – creado lcsql:sqlserver:restaurar [182023/01/ 13:37] (actual) – editor externo 127.0.0.1
Línea 1: Línea 1:
 +===== Restaurar usuarios huérfanos al restaurar/copiar una BDD =====
 +Cuando hacemos un backup y restauramos la base de datos en otro servidor, nos ocurrirá que los usuarios de la base de datos que existian siguen en la BDD pero que no pueden iniciar sesión por no tener usuario de **login**
  
 +Para solucionar estos usuarios huérfanos lo primero es saber que usuarios no tienen **login**
 +Para saber los usuarios que no tienen login
 +<sxh>
 +USE <base_de_datos>;
 +GO
 +     sp_change_users_login @Action='Report';
 +GO
 +</sxh>
 +
 +Para crear el login usaremos un procedimiento del sistema llamado **sp_change_users_login**
 +
 +https://docs.microsoft.com/es-es/sql/relational-databases/system-stored-procedures/sp-change-users-login-transact-sql?view=sql-server-ver15
 +
 +=== Sintaxis ===
 +<sxh>  
 +sp_change_users_login [ @Action = ] 'action'   
 +    [ , [ @UserNamePattern = ] 'user' ]   
 +    [ , [ @LoginName = ] 'login' ]   
 +    [ , [ @Password = ] 'password' ]  
 +[;]  
 +</sxh>
 +
 +
 +Si el usuario ya tiene login
 +<sxh>
 +EXEC sp_change_users_login 'Auto_Fix', 'usuario'</sxh>
 +
 +
 +Si no tiene usuario y queremos recrearlo en el nuevo servidor 
 +<sxh>
 +USE <base_de_datos>;
 +GO
 +EXEC sp_change_users_login 'Auto_Fix', 'nombre_de_usuario' ,'login', 'password';
 +GO
 +</sxh>
 +
 +<note>
 +Si el nombre de login es el mismo que el del usuario, ponemos NULL en el campo 'login'
 +<sxh>
 +USE <base_de_datos>;
 +GO
 +EXEC sp_change_users_login 'Auto_Fix', 'nombre_de_usuario' ,NULL, 'password';
 +GO
 +</sxh>
 +</note>
 +
 +También podemos crear el usuario y lo asignamos  a un login existente
 +<sxh>
 +ALTER USER <user_name> WITH Login = <login_name>;
 +</sxh>
 +
 +==== Referencias ====
 +  * https://rm-rf.es/arreglar-usuarios-huerfanos-en-sql-server-2008-orphaned-login-tras-migracion/
 +  * https://dbadiaries.com/using-sp_change_users_login-to-fix-sql-server-orphaned-users