15151: Cannot find the object/principal because it does not exist or you do not have permission (no se encuentra el objeto/principal porque no existe o no tiene permiso)
SQL Server¿Qué significa?
El objeto o principal de seguridad (usuario, rol, login) que referenció no existe o usted no tiene permiso para acceder a él/actuar sobre él. Por motivos de seguridad, SQL Server combina ambos casos en un único mensaje.
¿Por qué ocurre?
Usar un nombre de usuario, rol, esquema u objeto inexistente en un comando como GRANT/ALTER/DROP; ejecutar en el contexto de base de datos equivocado (el objeto está en otra BD); o carecer del privilegio para la operación. Las erratas, las mayúsculas/minúsculas y los prefijos de esquema son causas frecuentes.
Cómo solucionarlo
Verifique que el nombre del objeto/principal esté bien escrito y que esté en la base de datos correcta. Para usuarios: SELECT name, type_desc FROM sys.database_principals; para objetos, consulte sys.objects. Asegúrese de que la cuenta que ejecuta tenga los permisos necesarios (p. ej., ALTER ANY USER, CONTROL). Use el prefijo de esquema correcto (como dbo.object).
Más entradas de este motor
- 3961Snapshot isolation transaction failed because the object was modified by a DDL statement (falló la transacción snapshot porque una sentencia DDL modificó el objeto)
- 1785Introducing FOREIGN KEY constraint may cause cycles or multiple cascade paths (la restricción FOREIGN KEY puede provocar ciclos o varias rutas de cascada)
- 9421XML parsing: illegal xml character
- 4834You do not have permission to use the bulk load statement (no tiene permiso para usar la sentencia de carga masiva)
- 10928Resource limit for the database has been reached (Azure SQL) (se alcanzó el límite de recursos de la base de datos)
- 40544The database has reached its size quota (Azure SQL) (la base de datos alcanzó su cuota de tamaño)
- 40613Database is not currently available (Azure SQL) (la base de datos no está disponible en este momento)