
# 典型场景应用示例：创建用户组并授权使用DLI弹性资源池和数据库资源
#### 场景简介
某电商企业在区域A开展数据分析业务，市场部的员工user1、user2与技术部的员工user3、user4，需要使用DLI弹性资源池和数据库资源完成不同工作。
- 将市场部人员加入用户组G1，将技术部人员加入用户组G2。
  图1将用户加入用户组   
  ![](https://support.huaweicloud.com/usermanual-dli/zh-cn_image_0000002381617561.png "点击放大") 
- 将计算资源E1和数据库DB1关联企业项目A，主要存储销售数据、用户行为数据。
- 将计算资源E2 和数据库DB2关联企业项目B，用于存储系统日志、服务器性能数据。
  图2将资源关联对应的企业项目   
  ![](https://support.huaweicloud.com/usermanual-dli/zh-cn_image_0000002381737281.png) 
市场部的user1需要对销售数据进行深度分析，为了及时清理无效数据，需要具备对企业项目A中资源的删除权限；
市场部的user2负责市场活动效果评估，同样需要对相关数据资源的删除权限，以保证数据的时效性。
技术部的user3专注于系统日志分析，只需读取和使用企业项目B中的资源；
技术部user4主要负责服务器性能监控，仅需对相关资源进行只读操作。
#### 授权方案分析
基于以上业务需求，结合DLI支持的DLI服务权限、IAM权限管理和企业项目管理方式，有两种授权方案选择：
方案1：通过IAM为用户组G1和G2分配访问对应企业项目资源的权限，再单独赋予user1和user2的资源删除权限。
方案2：通过DLI服务提供的权限管理方式，结合每个用户的具体工作需求，单独设置不同的资源使用权限。
本节操作分别介绍方案1和方案2的具体操作步骤。
使用弹性资源提交作业时候需要具备队列的使用权限，本例中以资源池中队列的提交作业和取消作业权限为例。
#### 方案1：使用IAM授权企业用户组A和B分别使用不同资源的权限
使用弹性资源提交作业时候需要具备队列的使用权限，本例中以资源池中队列的提交作业和取消作业权限为例。
**前提条件：已将用户加入用户组，已将资源关联对应的企业项目。**
1. **创建IAM自定义策略Policy_A，授权访问企业项目A下的资源E1和DB1。**
   策略内容示例：
   ```
   {
       "Version": "1.1",
       "Statement": [
           {
               "Effect": "Allow",
               "Action": [
                   "dli:elasticresourcepool:resourceManagement",
                   "dli:queue:submitJob",
                   "dli:queue:cancelJob",
                   "dli:database:list"
               ],
               "Resource": [
                   "dli:*:*:elasticresourcepool:elasticresourcepools.E1",
                   "dli:*:*:database:databases.DB1"
               ]
           }
       ]
   }
   ```
   
2. **创建IAM自定义策略Policy_B，授权访问企业项目B下的资源E2和DB2。**
   策略内容示例：
   ```
   {
       "Version": "1.1",
       "Statement": [
           {
               "Effect": "Allow",
               "Action": [
                   "dli:elasticresourcepool:resourceManagement",
                   "dli:queue:submitJob",
                   "dli:queue:cancelJob",
                   "dli:database:list"
               ],
               "Resource": [
                   "dli:*:*:elasticresourcepool:elasticresourcepools.E2",
                   "dli:*:*:database:databases.DB2"
               ]
           }
       ]
   }
   ```
   
3. **针对user1和user2所需的资源删除权限** **创建Policy_C**
   策略内容示例：
   ```
   {
       "Version": "1.1",
       "Statement": [
           {
               "Effect": "Allow",
               "Action": [
                   "dli:elasticresourcepool:drop",
                   "dli:database:dropDatabase"
               ],
               "Resource": [
                   "dli:*:*:elasticresourcepool:elasticresourcepool.E1",
                   "dli:*:*:database:databases.DB1"
               ]
           }
       ]
   }
   ```
   
4. **给用户组授权**
   在用户组列表中，单击用户组操作列的"授权"。
   - 选择策略： 对用户组G1授权时，将策略Policy_A应用于用户组G1。
     对用户组G2授权时，将策略Policy_B应用于用户组G2。
     对用户user1和user2授予删除权限时，将删除权限策略Policy_C分别应用于用户user1和user2。
     
   
   - 设置最小的授权范围 对用户组G1授权时，指定授权范围关联企业项目A。
     对用户组G2授权时，指定授权范围关联企业项目B。
     对用户user1和user2授予删除权限时，指定授权范围关联企业项目A。
     
    
 
#### 方案2：使用DLI资源逐个对用户user1、user2、user3、user4授权资源不同的使用权限
**前提条件：已将用户加入用户组，已将资源关联对应的企业项目。**
此处权限仅为示例，请根据实际业务需求勾选需要的权限。
登录DLI管理控制台，找到对应的资源，分别使用DLI资源的用户授权功能对每个用户授予相应的权限。
- **弹性资源池E1**
  - user1：提交作业、终止作业、删除队列
  
  - user2：提交作业、终止作业、删除队列
   
- **弹性资源池E2**
  - user3：提交作业、终止作业
  
  - user4：提交作业、终止作业
   
- **数据库DB1**
  - user1：显示所有表、显示数据库、删除数据库、查询表、插入、重写、填写列、添加分区、删除分区、更新表数据、更新数据、删除数据
  
  - user2：显示所有表、显示数据库、删除数据库、查询表、插入、重写、填写列、添加分区、删除分区、更新表数据、更新数据、删除数据
   
- **数据库DB2**
  - user3：显示所有表、显示数据库、查询表、插入、重写、填写列、添加分区、删除分区、更新表数据、更新数据、删除数据
  
  - user4：显示所有表、显示数据库、查询表、插入、重写、填写列、添加分区、删除分区、更新表数据、更新数据、删除数据
   
#### 方案对比
- 方案1使用IAM用户组授权的方式更适合需要批量管理用户权限的场景，通过用户组和策略的组合，可以高效地实现权限分配，同时便于后续的管理。
- 方案2使DLI用户级授权的方式更适合需要对每个用户的权限进行精细管理的场景，能够满足复杂的业务需求，但管理成本相对较高。
表1方案对比 
| 对比项     | 方案 1（IAM用户组授权）   | 方案 2（DLI用户级授权）   |
|:---|:---|:---|
| 用户授权复杂度 | 以用户组为单位，适合批量管理   | 以用户为单位，适合精细权限控制  |
| 权限配置复杂度 | 策略集中管理，复杂度较低     | 每个用户独立配置，复杂度较高   |
| 资源隔离性   | 基于企业项目隔离，适合多团队场景 | 灵活跨项目授权，适合交叉协作场景 |
| 删除权限管理  | 支持用户级删除权限单独配置    | 直接在资源授权中勾选删除权限   |
| 适用场景    | 大型组织分团队管理资源      | 小型团队或需要差异化权限的场景  |
   
