跳到主要内容
跳到主要内容
编辑此页

Queries 权限

ClickHouse 中的查询可以分为几种类型

  1. 读取数据查询:SELECTSHOWDESCRIBEEXISTS
  2. 写入数据查询:INSERTOPTIMIZE
  3. 更改设置查询:SETUSE
  4. DDL 查询:CREATEALTERRENAMEATTACHDETACHDROP TRUNCATE
  5. KILL QUERY.

以下设置按查询类型 регулируют 用户权限

readonly

限制读取数据、写入数据和更改设置查询的权限。

当设置为 1 时,允许

  • 所有类型的读取查询(如 SELECT 和等效查询)。
  • 仅修改会话上下文的查询(如 USE)。

当设置为 2 时,允许上述内容以及

  • SET 和 CREATE TEMPORARY TABLE

    提示

    类似 EXISTS、DESCRIBE、EXPLAIN、SHOW PROCESSLIST 等查询与 SELECT 等效,因为它们只是从系统表中进行选择。

可能的值

  • 0 — 允许读取、写入和更改设置查询。
  • 1 — 仅允许读取数据查询。
  • 2 — 允许读取数据和更改设置查询。

默认值:0

注意

在设置 readonly = 1 后,用户无法在当前会话中更改 readonlyallow_ddl 设置。

当在 HTTP 接口 中使用 GET 方法时,会自动设置 readonly = 1。要修改数据,请使用 POST 方法。

设置 readonly = 1 禁止用户更改设置。有一种方法可以禁止用户仅更改特定设置。还有一种方法允许在 readonly = 1 限制下仅更改特定设置。有关详细信息,请参阅设置约束

allow_ddl

允许或拒绝 DDL 查询。

可能的值

  • 0 — 不允许 DDL 查询。
  • 1 — 允许 DDL 查询。

默认值:1

注意

如果当前会话的 allow_ddl = 0,则无法运行 SET allow_ddl = 1

KILL QUERY

KILL QUERY 可以在任何 readonly 和 allow_ddl 设置组合下执行。