CloudBeaver中ClickHouse只读用户查询报错:无法修改max_result_rows
问题原因
当CloudBeaver中ClickHouse驱动的max_result_rows设为0时,它会尝试在执行SELECT查询时动态修改这个设置(比如自动调整为一个较大值以获取全量数据),但ClickHouse的只读用户被限制修改任何系统设置,这就触发了Cannot modify 'max_result_rows' setting in readonly mode的错误——本质是只读用户权限不允许修改配置,而CloudBeaver的默认行为刚好触发了这个限制。
解决方法
方法1:修改CloudBeaver驱动的固定参数值
- 打开CloudBeaver,进入驱动管理(一般在设置或数据库连接配置的驱动选项里)
- 找到ClickHouse驱动,进入编辑模式
- 找到
max_result_rows属性,将其从0改为一个具体的非0数值(比如10000,根据你需要的单次查询最大返回行数调整) - 保存配置,重新连接ClickHouse,之后查询表内容时就会使用预设值,不会触发修改设置的操作
方法2:在ClickHouse端给只读用户开放修改该参数的权限
如果你需要返回全量数据(不想限制行数),可以给只读用户授权修改max_result_rows的权限,执行以下SQL命令:
ALTER USER your_readonly_user SETTINGS allow_modify_settings = 'max_result_rows'
或者创建用户时直接指定:
CREATE USER your_readonly_user WITH READONLY=1 SETTINGS allow_modify_settings = 'max_result_rows'
注意:这种方法会放宽权限,需评估性能风险(比如大表全量查询可能占用较多资源)
内容的提问来源于stack exchange,提问作者rokpoto.com
相关产品推荐
相关产品推荐

