2020-04-03 13:23:32 +00:00
---
2022-08-28 14:53:34 +00:00
slug: /en/operations/settings/permissions-for-queries
2022-04-09 13:29:05 +00:00
sidebar_position: 58
sidebar_label: Permissions for Queries
2020-04-03 13:23:32 +00:00
---
2022-06-02 10:55:18 +00:00
# Permissions for Queries
2018-11-20 15:26:56 +00:00
2018-12-04 09:27:38 +00:00
Queries in ClickHouse can be divided into several types:
2018-11-20 15:26:56 +00:00
2020-03-20 10:10:48 +00:00
1. Read data queries: `SELECT` , `SHOW` , `DESCRIBE` , `EXISTS` .
2. Write data queries: `INSERT` , `OPTIMIZE` .
3. Change settings query: `SET` , `USE` .
4. [DDL ](https://en.wikipedia.org/wiki/Data_definition_language ) queries: `CREATE` , `ALTER` , `RENAME` , `ATTACH` , `DETACH` , `DROP` `TRUNCATE` .
5. `KILL QUERY` .
2018-11-20 15:26:56 +00:00
2018-12-04 09:27:38 +00:00
The following settings regulate user permissions by the type of query:
2018-11-20 15:26:56 +00:00
2020-03-21 04:11:51 +00:00
- [readonly ](#settings_readonly ) — Restricts permissions for all types of queries except DDL queries.
2020-10-13 17:23:29 +00:00
- [allow_ddl ](#settings_allow_ddl ) — Restricts permissions for DDL queries.
2018-11-20 15:26:56 +00:00
2018-12-04 09:27:38 +00:00
`KILL QUERY` can be performed with any settings.
2018-11-20 15:26:56 +00:00
2020-03-22 09:14:59 +00:00
## readonly {#settings_readonly}
2018-11-20 15:26:56 +00:00
2020-03-19 08:31:06 +00:00
Restricts permissions for reading data, write data and change settings queries.
2018-11-20 15:26:56 +00:00
2018-12-04 09:27:38 +00:00
See how the queries are divided into types [above ](#permissions_for_queries ).
2018-11-20 15:26:56 +00:00
2019-09-12 14:14:19 +00:00
Possible values:
2018-11-20 15:26:56 +00:00
2020-03-21 04:11:51 +00:00
- 0 — All queries are allowed.
- 1 — Only read data queries are allowed.
- 2 — Read data and change settings queries are allowed.
2018-11-20 15:26:56 +00:00
2020-03-20 10:10:48 +00:00
After setting `readonly = 1` , the user can’ t change `readonly` and `allow_ddl` settings in the current session.
2018-11-20 15:26:56 +00:00
2018-12-21 19:23:55 +00:00
When using the `GET` method in the [HTTP interface ](../../interfaces/http.md ), `readonly = 1` is set automatically. To modify data, use the `POST` method.
2018-12-04 09:27:38 +00:00
2022-08-25 15:24:24 +00:00
Setting `readonly = 1` prohibit the user from changing all the settings. There is a way to prohibit the user from changing only specific settings. Also there is a way to allow changing only specific settings under `readonly = 1` restrictions. For details see [constraints on settings ](../../operations/settings/constraints-on-settings.md ).
2019-06-10 18:38:03 +00:00
2019-09-12 14:14:19 +00:00
Default value: 0
2018-11-20 15:26:56 +00:00
2020-10-13 17:23:29 +00:00
## allow_ddl {#settings_allow_ddl}
2018-11-20 15:26:56 +00:00
2019-09-12 14:14:19 +00:00
Allows or denies [DDL ](https://en.wikipedia.org/wiki/Data_definition_language ) queries.
2018-11-20 15:26:56 +00:00
2018-12-04 09:27:38 +00:00
See how the queries are divided into types [above ](#permissions_for_queries ).
2018-11-20 15:26:56 +00:00
2019-09-12 14:14:19 +00:00
Possible values:
2018-11-20 15:26:56 +00:00
2020-03-21 04:11:51 +00:00
- 0 — DDL queries are not allowed.
- 1 — DDL queries are allowed.
2018-12-04 09:27:38 +00:00
2020-03-20 10:10:48 +00:00
You can’ t execute `SET allow_ddl = 1` if `allow_ddl = 0` for the current session.
2018-11-20 15:26:56 +00:00
2019-09-12 14:14:19 +00:00
Default value: 1
2018-11-20 15:26:56 +00:00
2021-09-19 20:05:54 +00:00
[Original article ](https://clickhouse.com/docs/en/operations/settings/permissions_for_queries/ ) <!--hide-->