
# 配置Doris用户权限
在数据处理场景中，当多个用户同时访问Doris集群进行数据分析时，由于缺乏有效的权限管理机制，可能会导致数据泄露或误操作，影响业务的安全性和效率。Doris用户权限管理功能实现了对集群中各个节点上的用户、角色和权限的统一管理。通过在控制台创建角色、创建用户并绑定角色，实现了用户权限的控制，确保不同用户之间的操作互不影响，从而提高业务效率。且在多用户环境下，Doris用户权限管理通过细粒度的权限控制，确保每个用户只能访问被授权的数据和操作，从而有效防止数据泄露和误操作，提升整体业务的安全性和效率。
#### 使用限制
- 删除操作不可逆，即使删除后立即重新添加同名角色，也可能存在权限和以前不一致的情况。所以，删除角色前需确认此角色是否应用中。
- 删除用户前需确认此账户是否使用。删除操作不可逆，即使删除后立即重新添加同名账户，也可能存在权限和以前不一致的情况。
- 组件不支持查看已有账户的密码，如果忘记密码可以通过重置密码功能设置新密码。
- 组件支持查看账户对数据库的操作权限。
- 用户名、角色名称大小写敏感。
 
#### 前提条件
- 已创建Doris集群，集群运行正常。
- 已安装MySQL客户端。
 
#### 步骤一：创建Doris角色
1. 登录[表格存储服务控制台](https://console.huaweicloud.com/cloudtable)。
2. 在"集群管理"列表中选择目标集群，单击"集群名称 \> 角色管理"，进入"角色管理"页面。
3. 单击"新建角色"，弹出"新建角色"页面，配置表中相关参数。 
   表1角色权限说明 
   | 参数   | 说明                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
   |:---|:---|
   | 角色名  | 角色名称以字母开头，长度范围1\~64。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |
   | 全局权限 | 全局权限指拥有所有数据库和表的权限，包括查询、插入、更改、创建、删除权限。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
   | 各级权限 | 数据库和表，指的是集群中所创建的数据库和表。 - 数据库有"高危权限"和"普通权限"；表只有"普通权限"。  - 权限类别 - 高危权限：创建表、删除表。  - 普通权限：查询、插入、更改。     |
      
   
   
4. 参数配置完成后，单击"确认"。返回角色管理界面检查新建角色显示在角色列表中。
 
#### 步骤二：创建Doris用户
1. 角色创建完成后，单击"用户管理"，进入"用户管理"页面。
2. 单击"新建用户"，弹出"新建用户"页面，配置用户名、密码。 
   表2用户参数说明 
   | 参数   | 说明                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
   |:---|:---|
   | 用户名  | 新建用户名必须以字母开头，长度范围1\~64。                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
   | IP地址 | 指定用户登录的IP地址。                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
   | 租户名  | 新建用户时，给用户可分配租户。分配租户会修改所有用户名相同的租户。                                                                                                                                                                                                                                                                                                                                                                                                                                                |
   | 密码   | 新建用户的密码。 说明： 设置密码规则： - 8\~16个字符。  - 至少包含以下字符中的4种：大写字母、小写字母、数字、特殊字符（$@!%\*?\&._{}()+=\^\<\>）。  - 不能与用户名或倒序的用户名相同。   |
   | 确认密码 | 确认密码。                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |
      
   
   
3. 参数配置完成后，单击"确认"。返回用户管理界面检查新建用户显示在用户列表中。
 
#### 步骤三：Doris用户绑定角色并访问集群
例如：角色A拥有查询、插入、更改、创建、删除。用户绑定角色A后拥有角色A权限。
1. 角色、用户创建完成后，在"用户管理"页面，选择目标用户，单击操作列"更多 \> 分配角色"。
2. 弹出"分配角色"页面，选择角色。单击"确定"。
3. 单击操作列"查看权限"，用户拥有角色权限。
4. 使用新建的用户连接集群。 
   非安全集群连接命令，详细操作请参见[使用MySQL客户端连接Doris普通集群](https://support.huaweicloud.com/usermanual-cloudtable/cloudtable_01_0228.html)。
   ```
   ./mysql -uadmin -ppassword -h集群内网地址 -P9030
   ```
   安全集群连接命令，详细操作请参见[使用MySQL客户端连接Doris安全集群](https://support.huaweicloud.com/usermanual-cloudtable/cloudtable_01_0389.html)。
   ```
   ./mysql -uadmin -h集群内网地址 -P9030 --ssl-ca={path}/certificate.crt --ssl-mode=VERIFY_CA -ppassword
   ```
   
   
5. 验证：在命令窗口中执行查询、插入、更改、创建、删除权限。 
   - 如果可以执行查询、插入、更改、创建、删除权限，说明绑定角色成功。
   
   - 如果无法执行查询、插入、更改、创建、删除权限，请检查角色是否配置权限、用户是否绑定角色。以上两种情况无问题请联系技术人员处理。
   
   
   
   
 
#### 管理用户权限
- 管理角色
  - 删除角色：单击操作列"删除"，弹出删除的页面，输入"DELETE"或者单击"一键输入"，输入后单击"确定"，删除角色。
  
  - 修改角色权限：单击操作列"修改"，弹出"修改角色"页面，根据用户需求选择权限，单击"确定"。
  
  - 查看角色权限：单击操作列"查看权限"，弹出"查看权限"页面，查看角色当下拥有使用数据库和表的权限。
   
- 管理用户
  - 分配角色：单击操作列"更多 \> 分配角色"，弹出"分配角色"窗口，选择角色，单击"确定"。
  
  - 分配租户：单击操作列"更多 \> 分配租户"，弹出"分配租户"窗口，选择租户，单击"确定"。
  
  - 查看用户权限：单击操作列"查看权限"，弹出"查看权限"页面，查看用户当下拥有使用数据库和表的权限。
  
  - 删除用户：单击操作列"删除"，弹出删除的页面，单击"确定"，删除用户。
  
  - 修改用户密码：单击操作列"更多 \> 修改密码"，弹出"修改密码"页面，修改密码后单击"确定"。
  
  - 更改IP地址：单击操作列"更多 \> 更改IP地址"，弹出"更改IP地址"窗口，配置参数IP、密码，单击"确定"。
   
 
#### 用户权限常用命令
1. 创建角色
   ```
   CREATE Role role_name;
   ```
   role_name：指新建角色名称。
   
2. 给角色赋予权限。
   - 授予指定库表的权限给角色。
     ```
     GRANT LOAD_PRIV ON ctl1.db1.* TO ROLE 'my_role';
     ```
     
   
   - 授予指定资源的使用权限给角色。
     ```
     GRANT USAGE_PRIV ON RESOURCE 'spark_resource' TO ROLE 'my_role';
     ```
     
    
3. 删除角色。
   ```
   DROP ROLE role1;
   ```
   
4. 创建用户。
   - CREATE USER命令用于创建一个Doris用户（无角色）。
     ```
     CREATE USER 'Jack' IDENTIFIED BY 'password';
     ```
     表3参数说明 
     | 参数       | 说明        |
     |:---|:---|
     | Jack     | 设置的用户名。   |
     | password | 指创建的用户密码。 |
        
     ![](https://support.huaweicloud.com/usermanual-cloudtable/public_sys-resources/note_3.0-zh-cn.png)
     可通过命令指定IP。
     ```
     CREATE USER 'jack02' @'192.168.%'  identified by '123456'  DEFAULT ROLE 'default_role';
     ```
     
   
   - CREATE USER命令用于创建一个Doris用户（分配系统默认角色）。
     ```
     CREATE USER 'jeo' IDENTIFIED BY 'password' DEFAULT ROLE 'default_role';
     ```
     
    
5. 修改用户密码。
   ALTER USER命令用于修改用户密码。
   ```
   ALTER USER 'Jack' IDENTIFIED BY "password";
   ```
   
6. 给用户分配角色。
   - 给用户分配角色。
     ```
     GRANT 'role1','role2' TO 'jack'@'%';
     ```
     表4参数说明 
     | 参数   | 说明        |
     |:---|:---|
     | role | 代表创建的角色。  |
     | jack | 代表新建的用户名。 |
        
     
   
   - 撤销分配给用户的角色。
     ```
     REVOKE 'role1' FROM 'candy';
     ```
     
    
7. 删除用户。
   ```
   DROP USER'Jack';
   ```
   
8. 查询当前用户的权限和角色。
   ```
   SHOW GRANTS;
   ```
   
 
