# Running queries

The SQL editor, statement history and the permissions that gate it.

> Section: Database

## The SQL editor

Choose a database in your project and run statements against it. Executed statements are kept per database, so you can retrace what ran and when.

## Read and write are separate

sql.execute.read and sql.execute.write are granted independently. An analyst account can explore a production database without being able to change anything in it.

## Destructive statements stay destructive

There is no undo. Take a backup before schema surgery, and wrap exploratory work in a transaction you can roll back.

```sql
begin;

update invoices set status = 'void' where created_at < now() - interval '2 years';

-- inspect the result, then decide
rollback;
```
