【问题标题】:Why is "Cannot modify setting in readonly mode" thrown when not explicitly modify it in ClickHouse?为什么在 ClickHouse 中未显式修改设置时会抛出“无法在只读模式下修改设置”?
【发布时间】:2020-06-28 05:46:49
【问题描述】:

当抛出以下异常时,应用程序正在使用只读用户:

<Error> HTTPHandler: Code: 164, e.displayText() = DB::Exception: Cannot modify 'result_overflow_mode' setting in readonly mode

我看了ClickHouse的代码,发现当查询使用set setting时,如果用户是只读的,就会抛出这个错误。

我在users.xml中检查了我的只读用户的配置,发现max_result_rows/bytesresult_overflow_mode没有被主动设置。

但是,我的查询不适用于set setting

那么什么逻辑触发了这个设置的变化呢?

【问题讨论】:

标签: settings readonly clickhouse


【解决方案1】:

尝试指定&lt;readonly&gt;2&lt;/readonly&gt;

readonly参数说明:https://clickhouse.tech/docs/en/operations/settings/permissions_for_queries/#settings_readonly

可能的值:
0 — 允许所有查询。
1 — 只允许读取数据查询。
2 — 允许读取数据和更改设置查询。

因此,使用 readonly=2 时,您可以让客户端设置 result_overflow_mode,但不允许执行插入和其他修改数据的请求。

【讨论】:

  • 谢谢!你的回答很详细。您是否知道什么逻辑可能会触发 result_overflow_mode setting 的更改,因为我没有明确地这样做。
  • 就我而言,我的客户 DBeaver 设置了result_overflow_mode
猜你喜欢
  • 2023-03-22
  • 1970-01-01
  • 2021-04-21
  • 2011-02-01
  • 1970-01-01
  • 1970-01-01
  • 2011-10-29
  • 2020-06-12
  • 1970-01-01
相关资源
最近更新 更多