查询权限
在 ClickHouse 中,查询可以分为几种类型:
- 读取数据查询:
SELECT
、SHOW
、DESCRIBE
、EXISTS
。 - 写入数据查询:
INSERT
、OPTIMIZE
。 - 更改设置查询:
SET
、USE
。 - DDL 查询:
CREATE
、ALTER
、RENAME
、ATTACH
、DETACH
、DROP
、TRUNCATE
。 KILL QUERY
。
以下设置根据查询类型调节用户权限:
readonly
限制读取数据、写入数据和更改设置查询的权限。
当设置为 1 时,允许:
- 所有类型的读取查询(如 SELECT 及其等效查询)。
- 仅修改会话上下文的查询(如 USE)。
当设置为 2 时,允许上述操作加上:
-
SET 和 CREATE TEMPORARY TABLE
提示查询如 EXISTS、DESCRIBE、EXPLAIN、SHOW PROCESSLIST 等等等效于 SELECT,因为它们只是从系统表中选择数据。
可能的值:
- 0 — 允许读取、写入和更改设置查询。
- 1 — 仅允许读取数据查询。
- 2 — 允许读取数据和更改设置查询。
默认值: 0
allow_ddl
允许或拒绝 DDL 查询。
可能的值:
- 0 — 不允许 DDL 查询。
- 1 — 允许 DDL 查询。
默认值: 1
备注
如果当前会话中 allow_ddl = 0
,则无法运行 SET allow_ddl = 1
。
KILL QUERY
可以使用任意组合的 readonly 和 allow_ddl 设置执行 KILL QUERY
。