Dominando Interceptores de Base de Datos en .NET Core Web API

Aprende a usar interceptores de base de datos en EF Core para .NET 6–9: registra SQL, mide rendimiento, bloquea comandos peligrosos y audita operaciones en APIs.

3 sept 2025 • 5 min read • Q2BSTUDIO Team

Inteligencia-Artificial-

1. Introducción

Al crear aplicaciones modernas .NET Web API, las operaciones de base de datos son el centro de todo. ¿Alguna vez te has preguntado qué consultas SQL se están ejecutando, cómo medir su rendimiento o si es posible detener comandos peligrosos antes de que lleguen a la base de datos? La respuesta está en los interceptores de base de datos.

En este artículo repasamos la interceptación en Entity Framework Core para .NET 6, 7, 8 y 9. Empezaremos por lo básico registrando consultas y avanzaremos hacia escenarios de nivel experto como monitorización de rendimiento, auditoría y bloqueo de SQL potencialmente dañino.

En Q2BSTUDIO impulsamos el diseño de arquitecturas robustas para APIs y microservicios, integrando prácticas de ciberseguridad, observabilidad y escalabilidad. Somos una empresa de desarrollo de software y aplicaciones a medida, especialistas en inteligencia artificial, ciberseguridad, servicios cloud AWS y Azure, servicios de inteligencia de negocio y power bi, agentes IA e IA para empresas.

2. Requisitos previos

- Un proyecto Web API en .NET 6, 7, 8 o 9 - Conocimientos básicos de Entity Framework Core - Paquetes NuGet de EF Core instalados: Microsoft.EntityFrameworkCore y Microsoft.EntityFrameworkCore.SqlServer

3. Nivel principiante: configurar Web API con EF Core

Define una entidad simple como User con un Id y un Name, y un DbContext que exponga DbSet de Users. En Program.cs registra el contexto usando UseSqlServer con tu cadena de conexión y agrega un endpoint mínimo, por ejemplo GET para devolver la lista de usuarios con ToListAsync.

4. Interceptor de registro de SQL

Un interceptor permite engancharse al ciclo de vida de los comandos antes de enviarlos a la base de datos. Con DbCommandInterceptor puedes sobrescribir métodos como ReaderExecuting y NonQueryExecuting para escribir en el log el SQL generado por EF Core. Útil para depurar, entender cómo LINQ se traduce a SQL y tener visibilidad total.

5. Medición de rendimiento

Además del log, mide el tiempo de ejecución de cada consulta. En los métodos ReaderExecuted y NonQueryExecuted puedes leer Duration de CommandExecutedEventData y registrar los milisegundos consumidos. Recomienda truncar la sentencia SQL al registrar para evitar logs enormes y activar EnableSensitiveDataLogging solo en entornos de desarrollo.

6. Bloqueo de SQL peligroso

Para evitar acciones destructivas por error, intercepta comandos antes de ejecutarse. Un patrón común: detectar DELETE sin cláusula WHERE. Normaliza el SQL, ignora espacios y comentarios iniciales y verifica si comienza con DELETE y no contiene WHERE. En ese caso lanza una excepción para bloquear la operación. Extiende el enfoque para otros casos como TRUNCATE o DROP según tus políticas de seguridad.

7. Nivel héroe: auditoría de acciones

Con SaveChangesInterceptor puedes auditar quién ejecuta una operación de escritura. Inyecta IHttpContextAccessor para obtener el usuario autenticado y registra información como nombre de usuario, marca de tiempo, endpoint y correlación. Si necesitas auditoría completa, escribe eventos en una tabla de auditoría o en un sistema de logs estructurados.

8. Registro de interceptores en Program.cs

- Agrega IHttpContextAccessor al contenedor - Registra tus clases interceptor como servicios de IInterceptor con AddScoped - En AddDbContext recupera todos los IInterceptor del contenedor e inviértelos en AddInterceptors - Para desarrollo, habilita EnableSensitiveDataLogging y LogTo para ver el SQL y los tiempos en consola

9. Controlador de usuarios y lógica simple

- GET api/users devuelve los usuarios y dispara los métodos ReaderExecuting y ReaderExecuted - POST api/users crea un usuario y dispara SaveChangesInterceptor y NonQuery - DELETE api/users/dangerous ejecuta un DELETE directo para validar que el interceptor de seguridad bloquee la instrucción sin WHERE

10. Cómo probar paso a paso

- Ejecuta la aplicación con dotnet run y observa la consola - Crea la base de datos y aplica migraciones con dotnet ef migrations add Init y dotnet ef database update - Prueba logging y rendimiento con GET https://localhost:5000/api/users; deberías ver en consola el SELECT a Users y el tiempo en ms - Prueba auditoría con POST https://localhost:5000/api/users?name=Alice; espera ver un mensaje de auditoría y el INSERT con su tiempo - Prueba seguridad con DELETE https://localhost:5000/api/users/dangerous; espera un error 500 y en consola un mensaje de bloqueo de DELETE sin WHERE

11. Mejores prácticas

- Mantén los interceptores ligeros, sin lógicas de larga duración - Emplea logging estructurado con soluciones como Serilog, Seq o Application Insights en lugar de Console - Separa responsabilidades en interceptores distintos para logging, rendimiento, auditoría y seguridad - Mide el impacto de rendimiento antes de llevarlo a producción - Añade pruebas automatizadas que validen que las reglas de seguridad bloquean los comandos críticos - Centraliza configuración de exclusiones para evitar falsos positivos en tareas de mantenimiento controlado

12. Conclusión

Los interceptores de base de datos en EF Core son una herramienta potente y poco aprovechada que te permite observar, manipular y mejorar las operaciones con la base de datos sin ensuciar tu lógica de negocio. Con ellos puedes: registrar todas las consultas, monitorizar tiempos de ejecución, bloquear comandos de riesgo y auditar acciones de usuario. En conjunto, elevan la calidad operativa de tus APIs, mejoran la trazabilidad y refuerzan la seguridad.

Si tu organización necesita llevar estas prácticas a producción con gobernanza, automatización y despliegues en la nube, en Q2BSTUDIO te ayudamos a construir soluciones de aplicaciones a medida y software a medida con enfoque en calidad, observabilidad y seguridad. Descubre más sobre cómo diseñamos productos robustos en nuestra página de aplicaciones a medida y cómo potenciamos modelos y copilotos con inteligencia artificial para acelerar tus casos de uso.

13. Descarga de código

El proyecto de ejemplo se encuentra en GitHub: código de referencia con interceptores

Extras y consejos operativos

- Observabilidad: captura métricas por tipo de comando, duración p95 y p99, y correlación con trazas distribuidas - Seguridad: añade listas de permitidos para sentencias administrativas ejecutadas por migraciones o tareas programadas, y registra quién las ejecuta - Rendimiento: utiliza caché de resultados en consultas muy repetidas y revisa los planes de ejecución derivados de LINQ complejo - Cloud: integra logs y métricas con servicios cloud aws y azure, revisa retención y costes, y establece alertas proactivas - IA y negocio: combina registros de auditoría con servicios inteligencia de negocio y power bi para detectar patrones y anomalías que respalden decisiones

A BREAK?

Play for a moment before you go

OUR SERVICES

How we can help you

Artificial intelligence

AI agents, chatbots, and intelligent assistants that automate tasks and serve your customers 24/7 to improve the efficiency of your business.

More info

Software Development

Web, mobile, and desktop applications, intranets, e-commerce, SaaS, and management platforms designed for your company's specific needs.

More info

Cloud services

Migration, infrastructure, managed hosting, high availability, and security on Microsoft Azure and Amazon Web Services to help your business scale without limits.

More info

Cybersecurity and pentesting

Security audits, penetration testing and protection of applications, data and infrastructure on-premise and cloud, with ethical hacking and regulatory compliance.

More info

Business Intelligence

Dashboards and data analysis with Power BI: we integrate your sources, design dashboards and KPIs and turn your data into decisions.

More info

Process automation

We automate repetitive tasks and connect your applications with n8n, Power Automate, Make, and RPA, eliminating manual work and increasing productivity.

More info

Training for Companies

We train your teams in technology with criteria: web development, databases, Git, best practices and security, automation with n8n, artificial intelligence for companies and creation of AI solutions with Azure AI Foundry.

More info

Code Auditing

We audit the code that you, your team or an AI create: we tell you what is good and what to improve, we secure it and make it ready for production, web or app.

More info

AI Image Generation

We create for you the images that your business needs with artificial intelligence: product, networks, advertising, illustration and avatars. You tell us what you want and we deliver it ready to use.

More info

AI Video Generation

We create videos with artificial intelligence for you: promotional, networking, virtual presenters, dubbing and animations. You tell us the idea and we will deliver it assembled and ready to publish.

More info

AI Conversational Avatars

We create conversational avatars with AI – digital humans with a face and voice – that serve your customers and teams with the knowledge of your company, on your website, interactive monitors, WhatsApp or Teams.

More info

Online Marketing and AI

Google Ads, Meta Ads, LinkedIn Ads and AI Engine Positioning (GEO/AEO): we attract customers and make your brand appear where they search for you, also on ChatGPT, Gemini and Perplexity.

More info

Do you have a project in mind?

Tell us your vision and we'll turn it into a software solution. Whatever the scope, we make your idea real.

Live Chat