Website review
This review may include AI-generated content and is not individually verified. Domain, certificate and other facts come from the observed data on this page.
What is Vanna 2.0?
Vanna 2.0 is a framework for building AI agents that query databases in natural language, designed for production use rather than demos. Its flagship component, the SQL Agent, lets users ask questions of company systems of record in plain English and get answers back, with access control attached to each user. The framework works with multiple LLM providers (Anthropic, OpenAI, Gemini, Ollama) and multiple databases (SQLite, PostgreSQL, MySQL, Snowflake, BigQuery, and others), so teams are not locked into a single vendor.
What it actually does
The core use case is text-to-SQL with guardrails. Instead of analysts writing queries by hand, a product manager or support lead can ask "which accounts churned last quarter" and have the agent generate and run the SQL. Vanna's positioning emphasizes that this works across an organization, not just for people who already know SQL — the quoted Microsoft product manager, Brian Spindolini, frames the value as spending less time writing SQL and more time on insights. That is his observation from working with the tool, and it matches the general pattern: the payoff is largest where a small number of data teams are bottlenecked by a large number of ad-hoc requests.
Open source versus hosted admin features
The open-source framework is the starting point, and Vanna lists optional hosted admin capabilities alongside it:
| Capability | What it addresses |
|---|---|
| Access control | Keeping users scoped to the data they should see |
| Observability | Real-time metrics and tracing for agent runs |
| Agent memory | Hosted vector database so the agent learns over time |
| File system | Secure storage and retrieval |
| Audit logs | Activity tracking and compliance |
| Data retention | Long-term storage of conversations and logs |
The practical trade-off: the OSS path gives you control and no vendor dependency, but you own authentication, logging and storage. The hosted admin layer is aimed at teams shipping to real users who need per-user permissions and an audit trail — typically regulated industries or multi-tenant SaaS products where "who asked what" must be answerable later.
Who should look at it
- Data platform teams building an internal "ask your warehouse" tool for non-technical staff.
- SaaS builders who want to embed querying into their product with user-scoped execution, so one customer never sees another's rows.
- Teams with mixed infrastructure — for example Postgres in production and BigQuery for analytics — who need one agent layer rather than one per database.
A reasonable first step is to try the dummy-database Colab notebook, which the site describes as about a minute with no sign-in, then move to the pip install vanna path for a real database. Decide between OSS and hosted admin features based on one question: do your users need different permissions and a compliance trail? If yes, the hosted layer is doing work you would otherwise build yourself.
How do I connect Vanna to my existing database and LLM provider?
Vanna's setup model is "bring your own stack": you pick an LLM provider and a database, and Vanna wires the two together rather than requiring you to migrate data or switch vendors. The page lists Anthropic, OpenAI, Gemini and Ollama on the model side, and SQLite, PostgreSQL, MySQL, Snowflake and BigQuery on the database side, with other databases covered in the docs. Ollama is the notable option if you need inference to stay on your own infrastructure; the hosted providers are the simpler path if you don't.
The practical sequence
- Choose your database connector first. The database choice usually constrains everything else — permissions, credentials, network access — so settle it before picking a model.
- Choose your LLM provider. Any of the listed providers works with any of the listed databases, so this is mostly a cost, latency and data-residency decision rather than a compatibility one.
- Get the configuration code. The page offers copy-paste-ready configuration for the combination you select, which is the fastest way to a working first query.
- Decide cloud vs. self-host. The SQL Agent is offered as open source with a "Use Cloud" and "Self Host" path; the open-source route is the one you configure against your own database and model credentials.
What "connecting" actually involves
For a typical analyst-facing scenario: you have a PostgreSQL warehouse with customer data, and you want non-SQL colleagues to ask questions in plain language. You install the framework, point it at PostgreSQL with a read-only role, and point it at your chosen model provider. The agent handles multi-turn conversation and access control, so the same deployment can serve different users with different visibility into the underlying tables.
Two trade-offs worth weighing:
- Read-only credentials are the safer default. Natural-language querying lowers the barrier to running SQL, which also lowers the barrier to running the wrong SQL. Scope the database user accordingly.
- Model choice changes answer quality on schema-heavy questions. Larger hosted models generally handle complex joins and ambiguous column names better; a locally hosted Ollama model keeps data in-house but may need more schema hints to be reliable.
Where the hosted features fit
The optional admin layer is separate from basic connectivity and matters most once more than a handful of people use the agent. It covers access control, observability with tracing, agent memory via a hosted vector database, secure file storage, audit logs and data retention. If you are connecting a single internal database for a small team, you can start with the open-source framework and add these later; if you are exposing the agent across an organization or need compliance trails, plan for them from the beginning.
A useful next step
Before writing any configuration, confirm two things with whoever owns the database: which credentials the agent will use, and whether query traffic is acceptable on the production instance or should go to a replica. Those answers determine whether this is an afternoon project or a change request.
For a broader view of the framework's origins and the SQL-agent use case, Microsoft's write-up is referenced on the page; the open-source project itself lives at Vanna 2.0.
Can non-technical users in my organization query our database with Vanna without writing SQL?
Yes. Vanna's SQL Agent is explicitly designed so people can interact with a database in natural language instead of writing SQL, and the page positions this as useful for users "regardless of their SQL expertise." The Microsoft quote on the page makes the same point: less time writing SQL, more time generating insights. So the intended audience includes non-technical colleagues, not just engineers.
That said, "non-technical users can ask questions" is not the same as "no setup is needed." Someone still has to connect the database, choose an LLM provider, and configure access. The page lists SQLite, PostgreSQL, MySQL, Snowflake, BigQuery and other databases, plus Anthropic, OpenAI, Gemini and Ollama as LLM options, so the technical work sits in configuration rather than in day-to-day querying.
What non-technical users actually get
- Natural-language querying — they ask a question in plain English, and the agent translates it into SQL against the connected system of record.
- Multi-turn conversation — follow-up questions like "now break that down by region" are part of the stated design, which matters because most real analysis is iterative rather than one-shot.
- Access control — the page lists access control among the optional hosted admin features, so you can limit who sees what. This is the feature that makes opening a database to a broad audience defensible.
- Audit logs and retention — activity tracking and long-term storage of conversations and logs are listed, which helps when someone asks how a number was produced.
The practical trade-off
The main risk with any natural-language-to-SQL tool is confident wrong answers: a non-technical user may not be able to tell a subtly incorrect join from a correct one. For a finance analyst pulling a monthly figure, that matters. Two mitigations are worth planning for. First, scope access so each user only reaches the tables relevant to their role. Second, keep the generated SQL visible so a technical colleague can spot-check high-stakes queries.
If you want a concrete first step, pick one department and one well-documented database — a PostgreSQL reporting replica is a common choice — and run a small pilot with five non-technical users. Watch which questions the agent answers well and which it fumbles; that tells you whether your schema and documentation are ready for a wider rollout.
For teams already standardized on a BI stack, it is also worth comparing how Vanna fits alongside tools like Metabase or Mode, which offer their own natural-language query features. The deciding factor is usually whether you want the agent embedded in your own application with your own access rules, or a ready-made analytics interface your users log into directly.
How does Vanna handle access control and user-scoped permissions in a multi-tenant deployment?
Vanna treats access control as an execution-layer concern rather than something bolted on after the agent works. In the multi-tenant model described on its site, agent actions run scoped to the individual user, so a query issued by one tenant's user is executed with that user's identity and permissions rather than a shared service account. That is the core design choice: the agent inherits the caller's access rather than holding broad credentials of its own.
What the page states versus what you supply
The product page lists Access Control ("control who sees what") and Audit Logs as optional hosted admin features, alongside observability, agent memory, and data retention. It does not publish a specific permission model, role syntax, or row-level security mechanism. So the practical picture is:
- Vanna provides: user-scoped execution, plus optional hosted capabilities for access control, audit logging, and retention.
- You provide: the actual permission definitions — which databases, schemas, tables, and rows each user or group may reach — typically through your existing database roles, warehouse grants, or an identity provider.
That division matters. If your warehouse already enforces row-level security or column masking, a user-scoped agent can lean on it instead of duplicating rules in application code. If your permissions live only in an app database, you will need to translate them into something the agent's execution path checks before running generated SQL.
A concrete multi-tenant scenario
Imagine a SaaS product where each customer has its own schema or tenant ID column. A support analyst at Customer A asks a natural-language question. With user-scoped execution, the generated SQL runs as that analyst, so tenant filtering and any restricted tables are enforced at the database layer. A second analyst at Customer B asking the same question gets a different result set without any prompt-level trickery. This is the difference between "the agent is told to filter by tenant" and "the agent cannot see other tenants" — the second is the one that survives adversarial prompting.
Decision criteria
Ask these before committing:
- Where do your permissions already live? If your warehouse or identity provider enforces them, prefer that over rebuilding rules inside the agent.
- Do you need per-request auditability? The hosted audit log feature is relevant if compliance requires tracing who asked what and which query ran.
- Is multi-tenancy by schema, by row, or by separate databases? The enforcement point differs, and the agent's job is to not widen access in any of them.
- Can you test with a deliberately over-privileged prompt? Try asking the agent for data belonging to another tenant and confirm the database rejects it.
A useful next step is to write down your current permission boundary — the exact place where "user X may read table Y" is decided — and check whether the agent's execution path passes through it. If it does, you are mostly configuring. If it does not, user-scoped execution alone will not save you.
For broader context on production agent patterns, Microsoft Learn documents SQL and identity integration approaches, and OWASP covers access-control failure patterns worth reviewing before launch.
What hosted admin features does Vanna offer beyond the open-source framework, and how much do they cost?
Vanna's hosted layer adds the operational pieces an open-source deployment leaves to you: access control, observability with real-time metrics and distributed tracing, a hosted vector database for agent memory, secure file storage, audit logs, and long-term data retention for conversations and logs. These are described as optional admin features rather than requirements, so the open-source framework can run without them.
What each feature changes in practice
| Hosted feature | Problem it solves |
|---|---|
| Access control | Keeps different users or tenants from seeing data they shouldn't |
| Observability and tracing | Lets you see what an agent did, and where a query went wrong |
| Agent memory (hosted vector DB) | Persists what the agent learns instead of rebuilding it per deployment |
| File system | Gives agents a place to store and retrieve files securely |
| Audit logs | Supports compliance and activity review |
| Data retention | Keeps conversation and log history beyond the session |
Cost
The page links to a pricing page but does not state amounts, tiers or billing model in the material available here, so no figure can be given. Treat cost as something to confirm directly on Vanna 2.0's pricing page before committing, and compare it against what you'd spend building equivalents yourself.
A practical way to decide: if you're a single analyst querying one SQLite file locally, the open-source framework is likely enough. If you're shipping to multiple teams or customers and need to answer "who saw what, and what did the agent do," the hosted admin features are the part that saves you from building identity, logging and retention yourself.
How do I deploy a Vanna SQL agent to production and integrate it with my application?
Deploying a Vanna SQL agent to production means running the open-source framework against your chosen LLM and database, then layering on the hosted admin features if you need access control, observability and audit trails. The page frames Vanna as identity-first and user-scoped, so the design question is less "which model" and more "whose credentials does each query run under."
A practical path from local to production
- Prototype locally. The page offers a Dummy Database in Colab that runs in about a minute with no sign-in, and a
pip install vannapath of roughly 30 minutes. Use this to confirm that natural-language questions map to sensible SQL against a sample schema. - Pick your stack. Vanna works with any LLM provider and database, and the page lists Anthropic, OpenAI, Gemini and Ollama on the model side, with SQLite, PostgreSQL, MySQL, Snowflake and BigQuery among the databases, plus other databases via the docs. Choose the combination that matches what you already run.
- Point it at your real schema. The agent's usefulness depends on how well it understands your tables, columns and business terms. This is the step where most production effort actually goes.
- Decide on the hosted admin layer. These are optional, per the page: access control, observability with real-time metrics and tracing, agent memory via a hosted vector database, secure file storage, audit logs and data retention. If your users are internal analysts on a trusted network, you may not need them on day one. If you are exposing the agent to customers or to many teams, the audit and access-control pieces are the ones that keep you out of trouble.
Integrating with your application
The open-source route gives you a framework you embed in your own service; the hosted admin features are what turn it into something a multi-tenant application can safely expose. The key integration decision is whether each end user's queries execute with their own database permissions or a shared service account. User-scoped execution is the safer default for anything customer-facing, because it means the agent cannot return rows a user could not have read directly.
A comparison to help you choose
| Situation | Sensible starting point | Main trade-off |
|---|---|---|
| Internal analysts, one team, trusted network | Open-source Vanna with your existing database | You build your own logging and access rules |
| Multiple teams or external users | Open-source plus hosted admin features | Added cost and a dependency on Vanna's cloud |
| Regulated environment needing audit trails | Hosted admin features with audit logs and retention | More setup, but far less custom compliance work |
| Data already in Snowflake or BigQuery | Vanna with that warehouse as the data source | Query cost and latency need monitoring |
A useful next step: run the Colab dummy-database example against a copy of your own schema, ask five questions your users actually ask, and judge the SQL quality before committing to an architecture. For teams comparing agent frameworks, the broader landscape includes LangChain for general orchestration and Snowflake's documentation if your data lives there.
User reviews (0)