QuestDB permissions reference
Every permission QuestDB Enterprise supports, and the level each one can be granted at. To see the same list from a running instance, including any permission added after this page was written:
SELECT * FROM all_permissions();
Database permissions
| Permission | Level | Description |
|---|---|---|
| ADD COLUMN | Database | Table | Add columns to tables |
| ADD INDEX | Database | Table | Column | Add index on symbol columns |
| ALTER COLUMN CACHE | Database | Table | Column | Enable/disable symbol caching |
| ALTER COLUMN TYPE | Database | Table | Column | Change column types |
| ALTER SYMBOL CAPACITY | Database | Table | Column | Change the capacity of a symbol column |
| ALTER VIEW | Database | Table | Change a view definition |
| ATTACH PARTITION | Database | Table | Attach partitions |
| BACKUP DATABASE | Database | Create database backups |
| BACKUP TABLE | Database | Table | Legacy, grants nothing: there is no BACKUP TABLE statement |
| CANCEL ANY COPY | Database | Cancel COPY operations |
| COMPILE VIEW | Database | Table | Recompile a view against the current schema |
| CONVERT PARTITION TO NATIVE | Database | Table | Convert Parquet partitions back to native format |
| CONVERT PARTITION TO PARQUET | Database | Table | Convert partitions to Parquet in place |
| CREATE LIVE VIEW | Database | Create live views |
| CREATE MATERIALIZED VIEW | Database | Create materialized views |
| CREATE TABLE | Database | Create tables |
| CREATE VIEW | Database | Create views |
| DEDUP DISABLE | Database | Table | Disable deduplication |
| DEDUP ENABLE | Database | Table | Enable deduplication |
| DETACH PARTITION | Database | Table | Detach partitions |
| DISABLE STORAGE POLICY | Database | Table | Disable storage policies |
| DROP COLUMN | Database | Table | Column | Drop columns |
| DROP INDEX | Database | Table | Column | Drop indexes |
| DROP LIVE VIEW | Database | Table | Drop live views |
| DROP MATERIALIZED VIEW | Database | Table | Drop materialized views |
| DROP PARTITION | Database | Table | Drop partitions |
| DROP TABLE | Database | Table | Drop tables |
| DROP VIEW | Database | Table | Drop views |
| ENABLE STORAGE POLICY | Database | Table | Enable storage policies |
| INSERT | Database | Table | Insert data |
| REFRESH MATERIALIZED VIEW | Database | Table | Refresh materialized views |
| REINDEX | Database | Table | Column | Reindex columns |
| REMOVE STORAGE POLICY | Database | Table | Remove storage policies |
| RENAME COLUMN | Database | Table | Column | Rename columns |
| RENAME TABLE | Database | Table | Rename tables |
| RESUME WAL | Database | Table | Resume WAL processing |
| SELECT | Database | Table | Column | Read data |
| SET PARQUET SETTINGS | Database | Table | Set per-column Parquet encoding, compression and bloom filters |
| SET REFRESH LIMIT | Database | Table | Set a materialized view's refresh limit |
| SET REFRESH TYPE | Database | Table | Change a materialized view's refresh strategy |
| SET STORAGE POLICY | Database | Table | Set storage policies |
| SET TABLE FORMAT | Database | Table | Switch a table's partition format between native and Parquet |
| SET TABLE PARAM | Database | Table | Set table parameters |
| SET TABLE TYPE | Database | Table | Change table type |
| SETTINGS | Database | Change instance settings in Web Console |
| SNAPSHOT | Database | Create snapshots |
| SQL ENGINE ADMIN | Database | List/cancel running queries |
| SWITCH ROLE | Database | Switch the replication role, read SWITCH STATUS |
| SYSTEM ADMIN | Database | System functions (reload_tls, etc.) |
| TRUNCATE TABLE | Database | Table | Truncate tables |
| UPDATE | Database | Table | Column | Update data |
| VACUUM TABLE | Database | Table | Reclaim storage |
Endpoint permissions
These control which protocol a principal may connect on. They are covered in detail under authentication and endpoint access.
| Permission | Level | Description |
|---|---|---|
| HTTP | Database | REST API, Web Console, QWP, ILP over HTTP |
| ILP | Database | InfluxDB Line Protocol TCP (port 9009) |
| PGWIRE | Database | PostgreSQL Wire Protocol (port 8812) |
User management permissions
| Permission | Description |
|---|---|
| ADD EXTERNAL ALIAS | Create external group mappings |
| ADD PASSWORD | Set user passwords |
| ADD USER | Add users to groups |
| CREATE GROUP | Create groups |
| CREATE JWK | Create JWK tokens |
| CREATE REST TOKEN | Create REST API tokens |
| CREATE SERVICE ACCOUNT | Create service accounts |
| CREATE USER | Create users |
| DISABLE USER | Disable users |
| DROP GROUP | Drop groups |
| DROP JWK | Drop JWK tokens |
| DROP REST TOKEN | Drop REST API tokens |
| DROP SERVICE ACCOUNT | Drop service accounts |
| DROP USER | Drop users |
| ENABLE USER | Enable users |
| LIST USERS | List users/groups/service accounts |
| REMOVE EXTERNAL ALIAS | Remove external group mappings |
| REMOVE PASSWORD | Remove passwords |
| REMOVE USER | Remove users from groups |
| SET MEMORY LIMIT | Set memory limits on users, groups, and service accounts |
| USER DETAILS | View user/group/service account details |
Special permissions
| Permission | Description |
|---|---|
| ALL | All permissions at the granted level (database/table/column). At the database level this includes DATABASE ADMIN - see granting ALL |
| DATABASE ADMIN | All permissions including future ones; can assume any service account |
A few destructive operations have no permission of their own. They are gated by
SYSTEM ADMIN, so the only way to grant them is to grant SYSTEM ADMIN, which
also carries every other system function:
| Operation | Gated by | Notes |
|---|---|---|
ALTER TABLE REBASE WAL | SYSTEM ADMIN | Rebuilds a suspended WAL table under a fresh sequencer. A table-level RESUME WAL grant is not enough |
SWITCH COLD STORAGE ROLE | SYSTEM ADMIN | Moves the cold storage manager role, including with FORCE |
By contrast, SWITCH ROLE, which moves the
replication role, has its own dedicated permission that can be granted without
handing over the rest of SYSTEM ADMIN.
See also
- Granting and revoking permissions -
levels,
WITH GRANT OPTION, and how grants shift level when you revoke - Authentication and endpoint access -
the
HTTP,PGWIREandILPpermissions in context - Per-principal query memory limits -
precedence, coverage, and administrative implications of
SET MEMORY LIMIT GRANTandREVOKEstatement syntax