229: The SELECT/EXECUTE permission was denied on the object (se denegó el permiso SELECT/EXECUTE sobre el objeto)
SQL Server¿Qué significa?
El usuario no tiene permiso para realizar la operación solicitada (SELECT, INSERT, EXECUTE, etc.) sobre el objeto. Se denegó el acceso por motivos de seguridad.
¿Por qué ocurre?
No se otorgó el permiso necesario al usuario/rol, propiedad de esquema incorrecta (ownership chaining roto), un DENY explícito sobre el objeto o el usuario no es miembro de un rol suficiente.
Cómo solucionarlo
Otorgue el permiso necesario: GRANT SELECT ON dbo.MyTable TO UserName (o GRANT EXECUTE ON dbo.MyProcedure TO ...). Añada el usuario a un rol adecuado (p. ej., db_datareader). Elimine cualquier DENY explícito. Organice los permisos según el principio de mínimo privilegio. Audite los permisos existentes con sys.database_permissions.
Más entradas de este motor
- 9002The transaction log for database is full due to ... (el log de transacciones de la base de datos está lleno)
- 1105Could not allocate space for object in database because the filegroup is full (no se puede asignar espacio: el filegroup está lleno)
- 208Invalid object name (nombre de objeto no válido)
- 4060Cannot open database requested by the login. The login failed (no se puede abrir la base de datos solicitada; falló el inicio de sesión)
- 233A connection was successfully established with the server, but then an error occurred (no process is on the other end of the pipe) (conexión establecida, pero luego se produjo un error)
- 823The operating system returned error to SQL Server during a read/write at offset in file (I/O error) (error de E/S del sistema operativo al leer/escribir un archivo)
- 824SQL Server detected a logical consistency-based I/O error (page corruption) (error de E/S de consistencia lógica (corrupción de página))