# Databases

> Protecting production databases from destructive queries and unsafe migrations by AI agents.

Web page: https://vinescale.com/blog/tags/databases/

A coding agent with a production connection string can drop a table or run a migration as easily as it reads a row. These guides cover read-only roles, safe migrations and keeping test runs off production data.

- [How to give an AI coding agent read-only access to your production database](https://vinescale.com/blog/ai-agent-read-only-database-access.md) (2026-10-31): Create a dedicated database role with SELECT-only grants, add timeouts, point it at a replica if you can, and keep owner credentials out of the agent's reach.
- [When AI coding agents deleted production: 18 real incidents and lessons](https://vinescale.com/blog/ai-coding-agent-incidents.md) (2026-10-31): Eighteen publicly reported AI coding agent incidents, from deleted databases and repos to wiped cloud infrastructure, with what each agent did and the lesson.

## Browse by topic

- [Claude Code](https://vinescale.com/blog/tags/claude-code.md): Running Anthropic's Claude Code safely: hooks, permissions, settings and guardrails.
- [Hooks](https://vinescale.com/blog/tags/hooks.md): Using agent hooks to check, warn about or block an action before it runs.
- [Permissions](https://vinescale.com/blog/tags/permissions.md): Allow lists, deny lists, approval modes and credentials for coding agents.
- [Infrastructure](https://vinescale.com/blog/tags/infrastructure.md): Keeping agents from deleting or changing cloud infrastructure, Terraform state and Kubernetes resources.
- [Incidents](https://vinescale.com/blog/tags/incidents.md): Public incidents where AI coding agents broke something, and what they teach.
- [Guardrails](https://vinescale.com/blog/tags/guardrails.md): The general practice of putting safety checks between an AI agent and the systems it can change.
