916: The server principal is not able to access the database under the current security context (el principal de servidor no puede acceder a la base de datos en el contexto de seguridad actual)
SQL Server¿Qué significa?
Un login intentó acceder a una base de datos concreta, pero no tiene acceso a ella en el contexto de seguridad actual. El login puede conectarse al servidor, pero no tiene un usuario/permiso correspondiente en la base de datos de destino.
¿Por qué ocurre?
El login no tiene un usuario asignado en la base de datos (huérfano o nunca creado), el acceso a la base de datos está restringido o la cuenta guest está deshabilitada. Un caso habitual es el Object Explorer de SSMS intentando leer metadatos de una base de datos a la que el login no tiene acceso.
Cómo solucionarlo
Cree un usuario para el login en la base de datos de destino y conceda los permisos necesarios: USE [db]; CREATE USER [login] FOR LOGIN [login]; y asigne los roles/permisos adecuados. Si existe un usuario huérfano, asígnelo con ALTER USER ... WITH LOGIN = ... Si el acceso es realmente necesario, añádalo al rol de base de datos adecuado; si no, el error es el comportamiento esperado (sin acceso a esa base de datos).
Más entradas de este motor
- 1934INSERT/UPDATE failed because the following SET options have incorrect settings (falló INSERT/UPDATE porque estas opciones SET tienen valores incorrectos)
- 468Cannot resolve the collation conflict
- 4864Bulk load data conversion error (type mismatch or invalid character) (error de conversión de datos en la carga masiva (tipo no coincidente o carácter no válido))