查询权限
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
KILL QUERY
可以与任何组合的 readonly 和 allow_ddl 设置一起执行。