Agentsql

How to Give Your Team Self-Serve Access to BigQuery Without Losing Control

Marcus Feld, Analytics·Jul 19, 2026·8 min read

Opening BigQuery to the whole team sounds risky: runaway costs, accidental damage, people who cannot write SQL. Here is how to give safe, self-serve access without any of that.

Connected · demo_shop · Postgres · read‑only

Ask your data a question:

›_

Writing SQL… Running (read‑only)… SQL Agentsql wrote

Refine: refined ✓

Click a question. Agentsql writes the SQL, runs it read-only, and answers.

You can give a whole team self-serve access to BigQuery safely by combining three things: read-only IAM roles so nobody can change or delete data, cost controls like per-user query limits and reservations so nobody runs up the bill, and a plain-English query layer so people who do not write SQL can still get answers. Done together, these let anyone ask questions of the warehouse without the risk of broken data, surprise invoices, or a bottleneck at the one analyst who knows SQL. The goal is access without exposure.

The three fears, and the fix for each

When a data owner hesitates to open BigQuery to the team, it is almost always one of three worries. Each has a concrete answer.

The worryThe fix
Someone changes or deletes dataGrant read-only roles only. A viewer cannot write, drop or overwrite anything.
Someone runs up a huge billSet per-user and per-project query limits, and use reservations or on-demand caps.
Most of the team cannot write SQLPut a plain-English query layer on top so people ask questions, not write queries.

None of these require you to choose between access and safety. They are the standard way large data teams run BigQuery for hundreds of people, and they work just as well for a team of ten.

Start with read-only roles

The single most important control is that self-serve users get read access and nothing more. In BigQuery's IAM, a role like BigQuery Data Viewer lets a person query tables and read results but not modify, delete or export the underlying data. Pair it with the Job User role so they can run queries, and you have someone who can ask anything and break nothing.

Read-only is not just about preventing malice, which is rare. It is about preventing accidents, which are common. A person exploring data at speed will eventually run something they did not mean to. If their account physically cannot write, the worst case is a query that returns nothing useful, not a table that quietly loses a column. This is the same principle we build our own product on, and it is worth being strict about it. Enforcing least-privilege access across tools and people is exactly the kind of thing tight access controls are meant to guarantee rather than trust.

Put a ceiling on cost

BigQuery's on-demand pricing charges by the data each query scans, which is what makes people nervous about opening it up: in theory, one careless query against a huge table costs real money. In practice this is easy to cap. You can set custom quotas that limit the query bytes billed per user per day, so a single person can only ever scan so much before their queries are refused for the rest of the day. That turns an unbounded risk into a known, small ceiling.

Two more habits keep costs boring. Partition and cluster your large tables so ordinary queries scan a slice instead of the whole thing, and steer people toward querying curated, smaller tables rather than raw event logs. If you want the deeper version, our guide to BigQuery cost control for ad-hoc queries covers the settings that matter. With a per-user cap in place, self-serve access stops being a financial gamble.

Solve the SQL bottleneck

Read-only roles and cost caps make access safe, but they do not make it useful to the people who cannot write SQL, and that is usually most of the team. This is where self-serve BI quietly fails: you grant everyone access, and three months later the same two analysts are still fielding every question, because everyone else opens the console, stares at it, and goes back to asking them.

The fix is a layer that turns plain-English questions into SQL. Instead of teaching the whole company GoogleSQL, you let people type "how many new signups from paid channels last month" and get a chart, a table and a one-line answer. Agentsql does exactly this: it connects read-only to BigQuery, generates the query, runs it under the same read-only permissions, and shows the SQL every time so an analyst can verify it. Non-technical people get answers, and the data team gets its afternoons back. The read-only connection means the tool inherits the same safety you set up in IAM, rather than working around it.

Put it together

Safe self-serve access to BigQuery is not a single toggle, it is three cheap controls that reinforce each other. Read-only roles remove the risk of damage. Per-user query quotas remove the risk of cost. A plain-English query layer removes the SQL bottleneck that otherwise makes access theoretical. With all three in place, you can genuinely open the warehouse to the whole team and let people answer their own questions.

Agentsql is built for that last piece and respects the first two. It connects read-only to BigQuery, Postgres, MySQL and Snowflake, never trains on your data, and shows the SQL behind every answer so nothing is a black box. See how it works with BigQuery, read about our read-only security model, or watch how it works and give your team a safer way to ask.

See Agentsql write and run the SQL live.

Ask a question in plain English, watch the query appear, and get a chart and an answer with the SQL shown. Then point Agentsql at your own database.

See how it works

Ask your data in plain English.