Volver al blog
Seguridad · Guardrails

Cómo evitar que un agente de IA borre tu base de datos: guía de guardrails y reglas (2026)

Un agente de IA puede borrar tu base aunque el prompt lo prohíba. Comprueba cada acción con guardrails externos antes de que llegue a la base de datos.

Claix · Actualizado noviembre 2026. Guías relacionadas: rol Postgres de solo lectura (/es/blog/read-only-postgres-role-for-ai-agents), consultas seguras (/es/blog/how-to-let-an-ai-agent-query-postgres-safely) y las seis formas de dar acceso seguro (/es/blog/best-way-give-ai-agents-safe-database-access). Producto: Claix Guard (https://www.claix.dev/es/guard).

¿Puede un agente de IA borrar de verdad una base de datos?

Sí, y ya ha pasado en producción. En abril de 2026, un agente de programación de Cursor que usaba Claude Opus 4.6 borró la base de datos de producción de la startup PocketOS y todos sus backups volumen a volumen con una sola llamada a la API de su proveedor de infraestructura, Railway. Según los informes, tardó nueve segundos y el agente ignoró las instrucciones que le prohibían ejecutar comandos destructivos. Los backups estaban dentro del mismo volumen que se borró, y el último respaldo externo tenía tres meses.

No es un caso aislado: antes hubo otros incidentes similares con agentes de programación que eliminaron bases de datos de producción. Y no se trata de un modelo concreto. El patrón se repite: un agente con permisos más amplios de los necesarios y sin una capa que valide sus acciones.

¿Por qué no basta con decirle al agente «no borres nada»?

Porque un prompt es una petición al modelo, no una restricción. Un modelo de lenguaje funciona de forma probabilística: puede razonar que una acción destructiva es la solución a un problema (por ejemplo, un error de credenciales) y ejecutarla igualmente.

La regla de seguridad es simple: el control tiene que estar fuera del modelo. Lo que el agente no debe poder hacer tiene que estar bloqueado aunque el agente decida intentarlo.

¿Es suficiente un usuario de base de datos de solo lectura?

Es un buen primer paso, pero no basta por sí solo. Un rol de solo lectura en PostgreSQL deja varias brechas abiertas:

  • Configuraciones de sesión que el propio rol puede cambiar. Parámetros como default_transaction_read_only pueden desactivarse desde la sesión; lo que de verdad bloquea una escritura son los permisos concedidos (GRANT), no ese ajuste.
  • Funciones SECURITY DEFINER. Se ejecutan con los privilegios de su propietario, y por defecto PostgreSQL permite ejecutar funciones a cualquiera, así que un rol sin acceso a una tabla puede acabar escribiendo en ella a través de una función.
  • Permisos demasiado amplios. Usar GRANT SELECT ON ALL TABLES expone tablas que no pensabas exponer. Es más seguro conceder acceso solo a tablas y columnas concretas.
  • Row Level Security (RLS). Con RLS activado y sin políticas, un rol no ve ninguna fila, así que hay que definir políticas explícitas por rol.
  • Todo lo que no es SQL. En el caso de PocketOS la acción destructiva no fue una consulta SQL, sino una llamada a la API de infraestructura con un token de permisos amplios. Un rol de base de datos no protege de eso.

¿Qué son los guardrails para agentes de IA que acceden a datos?

Un guardrail es una regla que se evalúa fuera del agente, antes de ejecutar la acción, y que permite o deniega. Un buen sistema de guardrails sigue tres principios:

  • Denegar por defecto. Lo que no está permitido explícitamente, no se ejecuta.
  • Aplicación determinista. La decisión de permitir o bloquear no la toma un modelo que pueda equivocarse o dejarse convencer.
  • Auditoría. Cada acción intentada, permitida o bloqueada, queda registrada.

Este enfoque ya lo adoptan plataformas de gran tamaño; por ejemplo, Amazon Bedrock AgentCore evalúa cada petición de un agente a una herramienta contra políticas definidas fuera del agente.

¿Cómo funciona Claix Guard?

Claix Guard es un servicio gestionado que se sitúa entre tus agentes de IA y tus bases de datos. Tú describes las reglas en lenguaje natural; Claix las convierte en reglas y límites exactos, y comprueba cada INSERT, UPDATE y DELETE antes de que tu código lo ejecute. La respuesta es permitir o denegar, con el motivo. La comprobación es determinista: ningún modelo decide en el momento del chequeo. Claix no ejecuta la sentencia ni toca tus datos. Claix también recupera información para los agentes de forma acotada. No tienes que montar ningún framework ni escribir un lenguaje de políticas.

Ejemplo de regla en lenguaje natural: «Los agentes pueden consultar pedidos y clientes, pero nunca ver emails ni teléfonos. Pueden cambiar el estado de un pedido, pero no borrar nada. Ninguna operación puede afectar a más de 10 filas.»

Ejemplo de cómo se traduce (ilustrativo)

Lo que escribesLo que se aplica
Pueden consultar pedidos y clientesLectura permitida solo en esas tablas
Nunca ver emails ni teléfonosColumnas sensibles bloqueadas
Pueden cambiar el estado de un pedidoUPDATE permitido solo en el campo estado
No borrar nadaDELETE denegado
Máximo 10 filasLímite de filas afectadas por operación

¿Qué reglas debería definir primero?

  • Separa lectura y escritura. Empieza con agentes de solo lectura y añade escritura solo donde haga falta.
  • Deniega por defecto DELETE, DROP y TRUNCATE.
  • Limita las filas afectadas por operación para evitar cambios masivos.
  • Oculta columnas sensibles: emails, teléfonos, documentos de identidad, tokens.
  • En operaciones destructivas o irreversibles, deniega y exige la aprobación humana en tu propio flujo (Slack, email, n8n). Guard responde permitir o denegar; no hay un tercer veredicto.
  • Usa credenciales distintas por entorno, para que un agente de pruebas no tenga acceso a producción.
  • Registra todo y revisa los intentos bloqueados: te dicen qué intenta hacer realmente tu agente.
  • Mantén backups fuera del alcance del agente, no en el mismo volumen.

Comparativa: ¿qué protege qué?

MedidaEvita borrados accidentalesControla columnas y filasNo depende del modeloCubre acciones fuera de SQL
Instrucciones en el promptNo fiableNoNoNo
Usuario de solo lecturaSí, pero solo para escrituras SQLParcialSíNo
Row Level SecurityNoFilasSíNo
Guardrails externosSíSíSíDepende de dónde se apliquen

Las medidas se complementan: lo recomendable es combinar permisos mínimos en la base de datos con una capa de guardrails delante.

Preguntas frecuentes

¿Necesito guardrails si ya uso Row Level Security?
Sí. RLS decide qué filas puede ver o modificar un rol, pero no controla qué tipo de acciones intenta un agente ni limita cuántas filas toca una operación. Son capas complementarias.
¿Sirve para cualquier modelo o agente?
Al aplicarse fuera del agente, las reglas no dependen del modelo que uses ni del framework con el que lo hayas construido.
¿Puedo empezar solo con lectura?
Sí, y es lo más recomendable: da acceso de lectura primero, observa qué consulta tu agente y añade permisos de escritura gradualmente.
¿Qué pasa cuando el agente intenta una acción bloqueada?
La acción no se ejecuta y queda registrada, de modo que puedes revisar qué intentó hacer y ajustar las reglas. Claix Guard responde permitir o denegar, con el motivo. Tu código es el que ejecuta la sentencia si la respuesta es permitir.
¿Tengo que saber SQL o escribir políticas complejas?
No. Con Claix Guard describes las reglas en lenguaje natural y revisas las reglas generadas antes de activarlas. En el momento del chequeo la decisión es exacta: ningún modelo decide permitir o denegar.
Ya tengo un agente en producción con acceso directo a la base de datos, ¿qué hago?
Primero reduce sus permisos al mínimo y retira credenciales con acceso de escritura que no necesite. Después coloca una capa de guardrails entre el agente y la base de datos, empezando por bloquear DELETE y limitar las filas afectadas.

Conclusión

Dar acceso a una base de datos a un agente de IA es útil, pero las instrucciones en el prompt no son un control de seguridad. La combinación que funciona es permisos mínimos, reglas externas deterministas y registro de todo lo que el agente intenta. Con Claix Guard defines esas reglas en lenguaje natural y el servicio se encarga del resto. Prueba Claix Guard en https://www.claix.dev/es/guard.