MSSQLSERVER_916

Se aplica a: SQL Server

Detalles

Attribute Valor
Nombre del producto SQL Server
Id. de evento 916
Origen de eventos MSSQLSERVER
Componente SQLEngine
Nombre simbólico NOTUSER
Texto del mensaje La entidad de seguridad del servidor "%.*ls" no puede acceder a la base de datos "%.*ls" en el contexto de seguridad actual.

Explicación

El inicio de sesión no tiene los permisos suficientes para conectar a la base de datos denominada. Los inicios de sesión que se pueden conectar a esta instancia de SQL Server, pero que no tienen permisos específicos en una base de datos reciben los permisos del usuario invitado. Se trata de una medida de seguridad para evitar que los usuarios de una base de datos se conecten a otras en las que no tienen privilegios. Este mensaje de error se puede producir cuando el usuario guest no dispone del permiso CONNECT para la base de datos denominada y no se ha establecido la propiedad TRUSTWORTHY. Este mensaje de error se puede producir cuando el usuario guest no dispone del permiso CONNECT para la base de datos denominada.

Cuando se deniega o revoca el permiso CONNECT a la base de datos msdb, SQL Server Management Studio puede recibir este error cuando Explorador de objetos intenta mostrar el estado de administración basada en directivas de cada base de datos. El Explorador de objetos se sirve de los permisos del inicio de sesión actual para realizar consultas sobre esta información a la base de datos msdb, lo cual produce el error. También se produce el siguiente mensaje de error:

Error al recuperar datos para esta solicitud. (Microsoft.SqlServer.Management.Sdk.Sfc)

Acción del usuario

Advertencia

Antes de sortear esta medida de seguridad, asegúrese de que comprende perfectamente qué significa que los usuarios se autentiquen en varias bases de datos. Los siguientes métodos pueden permitir a los usuarios con permisos en una base de datos conectarse a otras, lo cual podría exponer los datos a usuarios malintencionados. Cuando las bases de datos independientes están habilitadas, los pasos siguientes pueden permitir que los propietarios de una base de datos de una base de datos concedan acceso a otra base de datos en la instancia de SQL Server.

Puede conectarse a la base de datos mediante uno de los siguientes procedimientos:

  • Otorgue el acceso de inicio de sesión específico a la base de datos denominada. En el siguiente ejemplo se concede el inicio de sesión para el acceso de Adventure-Works\Larry a la base de datos msdb.

    USE msdb ;
    
    GO
    
    GRANT CONNECT TO [Adventure-Works\Larry] ;
    
  • Otorgue el permiso CONNECT a la base de datos denominada en el mensaje de error del usuario guest. En el siguiente ejemplo se concede el permiso CONNECT para la base de datos msdb al usuario guest.

    USE msdb ;
    
    GO
    
    GRANT CONNECT TO guest ;
    
  • Habilite la propiedad TRUSTWORTHY en la base de datos que ha autenticado al usuario.

    ALTER DATABASE AdventureWorks SET TRUSTWORTHY ON;