更新时间:2025-06-10 GMT+08:00
        
          
          
        
      
      
      
      
      
      
      
      
  
      
      
      
        
配置ClickHouse表为只读表模式
操作场景
在数据迁移、一键均衡和退服缩容等操作中,确保表处于只读状态是非常重要的,以防止意外的写操作。ClickHouse提供了only_allow_select_statement 表级参数,可以对MergeTree系列表引擎配置该参数,以限制ALTER、RENAME、DROP和INSERT操作,仅允许SELECT操作。
约束与限制
本章节仅适用于MRS 3.2.0-LTS及之后版本。
设置表只读模式
- 安装客户端,具体请参考安装MRS客户端章节。
 - 使用root用户登录安装客户端的节点,执行以下命令:
    
    
进入客户端安装目录:
cd 客户端安装目录
配置环境变量:
source bigdata_env
 - 如果当前集群为安全模式(开启Kerberos认证),执行以下命令认证当前用户,如果当前集群为普通模式(关闭Kerberos认证),则无需执行本步骤。
    
    
kinit 组件业务用户
 
     该用户需要具有ClickHouse管理员权限。
 - 执行ClickHouse组件的客户端命令连接服务端。
    
    
- 普通模式:
      
clickhouse client --host ClickHouse的实例IP --user 用户名 --password --port 9440 --secure
输入用户密码
 
- 安全模式:
      
clickhouse client --host ClickHouse的实例IP --port 9440 --secure
 
 
     - MRS 3.2.0-LTS及之前版本:普通模式的用户为默认的default用户,或者使用ClickHouse社区开源能力添加管理用户。不能使用在FusionInsight Manager页面创建的用户。
 - MRS 3.3.0-LTS及之后版本:普通模式可以使用在FusionInsight Manager页面创建的用户。
 - ClickHouse的实例IP地址可登录集群FusionInsight Manager,然后选择“集群 > 服务 > ClickHouse > 实例”,获取ClickHouseServer实例对应的业务IP地址。
 
 - 普通模式:
      
 - 执行如下语句,设置表为只读模式:
    
    
ALTER TABLE {table_name} MODIFY SETTING only_allow_select_statement = true; 
   父主题: ClickHouse运维管理