La entidad de servidor "sqlLoginName" no puede tener acceso a la base de datos "myDatabaseName" en el contexto de seguridad actual

  

Descripción del problema : Al restaurar una base de datos de copia de seguridad a otro servidor, puede encontrar el siguiente mensaje de error cuando intenta conectarse.

Msg 916, Level 14, State 1, Line 1
La entidad de servidor " sqlLoginName " no puede tener acceso a la base de datos " myDatabaseName " en el contexto de seguridad actual

Causa : Al restaurar una base de datos de copia de seguridad a otro servidor, puede experimentar problemas con usuarios huérfanos. Es decir que el sistema SID sysuser punto de vista no se asigna a un SID syslogins existentes.

 
Resolución : Para detectar los usuarios huérfanos puede ejecutar el siguiente comando:
USE <myDatabaseName>
sp_change_users_login  @Action='Report';

Usted puede ver que el SID no coincide con los puntos de vista del sistema: sys.sysusers y sys.syslogins
USE <myDatabaseName>
SELECT sid FROM sys.sysusers WHERE name = 'sqlLoginName'
SELECT sid FROM sys.syslogins WHERE name = 'sqlLoginName'

Para corregir este problema de conexión entre la cuenta de conexión con el servidor especificado por el usuario y <login_name> la base de datos especificada por <database_user>, puede ejecutar el siguiente comando.
USE <myDatabaseName>
EXEC  sp_change_users_login @Action='update_one', @UserNamePattern='sqlLoginName',@LoginName=' sqlLoginName '; 

Para obtener más información :

Solucionar problemas de usuarios huérfanos
https://msdn.microsoft.com/es-es/library/ms175475.aspx

PRB: El tema "Solucionar problemas de usuarios huérfanos" de los Libros en pantalla está incompleto
https://support.microsoft.com/kb/274188/

sp_addlogin (Transact-SQL)
https://msdn.microsoft.com/es-es/library/ms173768.aspx

 

 

Michel Degremont| Microsoft EMEA
Product Support Services Developer -SQL Server Core Engineer |