
# 如何为ClickHouse用户赋予数据库级别的Select权限
#### 问题
如何为ClickHouse用户赋予数据库级别的Select权限。
#### 回答
1. 登录到MRS集群装有ClickHouse客户端的节点，执行如下命令： 
   **su - omm**
   **source** *{客户端安装目录}* **/bigdata_env**
   **kinit** *组件用户*（普通集群无需执行kinit命令）
   **clickhouse client --host** *clickhouse实例节点IP* **--port 9000 -m --user clickhouse --password '** *clickhouse用户密码* **'**
   ![](https://support.huaweicloud.com/cmpntguide-lts-mrs/public_sys-resources/note_3.0-zh-cn.png)
   - 查看ClickHouse用户密码： 登录FusionInsight Manager界面，选择"集群 \> 服务 \> ClickHouse \> 实例"，单击任意ClickHouseServer角色名称。进入ClickHouseServer"概览"页面，单击"配置文件"中的users.xml文件，查看ClickHouse用户密码。
     
   
   - 命令中如果携带认证密码信息可能存在安全风险，在执行命令前建议关闭系统的history命令记录功能，避免信息泄露。
    
   
   
2. 创建指定数据库只读权限角色，有如下两种方案： 
   方案一：
   1. 创建指定数据库只读权限角色（以default数据库为例，下同）： 登录Manager页面，创建指定数据库只读权限角色，例如创建角色"ck_role"，具体请参考[ClickHouse用户权限说明](https://support.huaweicloud.com/cmpntguide-lts-mrs/mrs_01_2493115.html)。
      
   
   2. 将只读权限角色赋予普通用户 **GRANT ck_role to user_01 on cluster default_cluster;**
      
   
   3. 查看用户权限 **show grants for user_01;**
      **select \* from system.grants where role_name = 'ck_role';**
      
   
   
   方案二：
   创建指定数据库只读权限用户：
   1. 创建用户： 登录Manager页面，创建指定用户，例如创建用户"user_01"，具体请参考[ClickHouse用户权限说明](https://support.huaweicloud.com/cmpntguide-lts-mrs/mrs_01_2493115.html)。
      
   
   
   
   2. 给用户赋予指定数据库的查询权限： **grant select on default.\* to user_01 on cluster default_cluster;**
      
   
   3. 查询用户权限： **select \* from system.grants where user_name = 'user_01';**
      
   
   
   
   
 
