
# 启用细粒度认证
在未启用细粒度认证的情况下，当在DataArts Studio数据开发组件执行脚本、测试运行作业或调度作业时，数据源会使用数据连接上的账号进行认证鉴权。因此，即使已通过配置角色/权限集对用户进行权限管控，当用户在进行数据开发时，权限管控依然无法生效。而在启用细粒度认证后，在DataArts Studio数据开发执行脚本、测试运行作业或调度作业时，数据源将不再使用数据连接上的账号，而是使用当前用户身份认证鉴权，从而做到实现不同用户具有不同的数据权限，使角色/权限集中的权限管控生效。
细粒度认证开启状态对数据开发中的脚本、作业运行和作业调度影响总结如下：
- 当关闭细粒度认证时，数据开发中的脚本执行、作业测试运行和作业调度使用数据连接上的账号进行认证鉴权。
- 当启用开发态细粒度认证后，数据开发中的脚本执行、作业测试运行使用当前用户身份认证鉴权，作业调度使用数据连接上的账号进行认证鉴权。
- 当启用调度态细粒度认证后，数据开发中的脚本执行、作业测试运行和作业调度使用当前用户身份认证鉴权。
 
在未启用细粒度认证的情况下，当在DataArts Studio数据架构、数据服务、数据质量、数据目录等服务使用管理中心连接查询数据时，数据源会使用数据连接上的账号进行认证鉴权。因此，即使已通过配置角色/权限集对用户进行权限管控，当用户在数据架构、数据服务、数据质量、数据目录使用管理中心连接查询数据时，权限管控依然无法生效。而在启用细粒度认证后，数据架构、数据服务、数据质量、数据目录使用管理中心连接查询数据时，数据源将不再使用数据连接上的账号，而是使用当前用户身份认证鉴权，从而做到实现不同用户具有不同的数据权限，使角色/权限集中的权限管控生效。
细粒度认证开启状态对数据架构、数据服务、数据质量、数据目录使用管理中心连接查询数据影响总结如下：
- 细粒度认证开启或关闭仅影响查询数据时的认证鉴权，不会影响任务调度过程中的用户身份。
- 当关闭细粒度认证时，数据架构、数据服务、数据质量、数据目录使用管理中心连接查询数据时，将使用数据连接上的账号进行认证鉴权。
- 当启用开发态细粒度认证后，数据架构、数据服务、数据质量、数据目录使用管理中心连接查询数据时，将使用当前用户身份认证鉴权。例如：在数据服务开发API时查询数据会使用当前用户身份认证鉴权，而采集任务调度、质量任务调度则不受影响。
#### 前提条件
- 开启细粒度认证前，请确保已经为使用数据源的用户配置了业务所需的数据权限，避免开启后因用户无数据权限导致业务中断。配置权限详见[配置权限集](https://support.huaweicloud.com/usermanual-dataartsstudio/dataartsstudio_01_1156.html)或[配置角色](https://support.huaweicloud.com/usermanual-dataartsstudio/dataartsstudio_01_1157.html)。
- DWS联通性测试前，已完成用户同步，然后将当前登录账号切换为IAM子用户账号，且至少具有DWS Database Access权限。
- 已经为MRS Hive连接、MRS Spark连接连接中的用户配置了代理权限，请参考[为MRS数据连接用户配置代理权限]进行配置。
- MRS Spark数据连接对应的Spark2x组件为多主实例模式，否则请参考[配置多主实例与多租户模式切换](https://support.huaweicloud.com/cmpntguide-mrs/mrs_01_1944.html)章节进行切换。
 
#### 约束与限制
- 当前开发态细粒度认证仅支持DWS、代理模式的MRS Hive、MRS Spark类型数据连接，调度态细粒度认证仅支持代理模式的MRS Hive类型数据连接。
- 仅DAYU Administrator、Tenant Administrator或者数据安全管理员有权限配置细粒度认证状态。
- 仅当数据连接中的Agent选择的CDM集群为2.10.0.300及以上版本时，才支持细粒度认证。
- 角色/权限集中配置的用户权限，需要在角色/权限集同步成功并启用细粒度认证后才能生效。
- DWS连接联通性测试约束如下：
  - 联通性测试时，系统会使用当前用户账号访问数据源，以确保正常访问。但由于DWS数据源不支持以华为账号直接访问，如果登录账号为华为账号，联通性测试会失败。因此，在DWS联通性测试前，需要先完成用户同步，再将当前登录账号切换为IAM子用户账号，且至少具有DWS Database Access权限。
  
  - 仅当DWS集群guest_agent版本为8.2.1，或在8.2.1以上、9.0.0以下时，才支持细粒度认证。DWS集群guest_agent版本查看方法请参考[查看DWS集群guest agent版本](https://support.huaweicloud.com/usermanual-dataartsstudio/dataartsstudio_01_1153.html#dataartsstudio_01_1153__section1153213235185)。
   
- MRS Hive连接联通性测试约束如下： 仅当MRS Hive数据连接中的用户配置了代理权限后，才支持细粒度认证。
  
- MRS Spark连接联通性测试约束如下：
  - 仅当MRS Spark数据连接中的用户配置了代理权限后，才支持细粒度认证。
  
  - 仅当MRS Spark数据连接对应的Spark2x组件为多主实例模式时才支持细粒度认证，为多租户模式时不支持。多租户模式切换多主实例模式请参考[配置多主实例与多租户模式切换](https://support.huaweicloud.com/cmpntguide-mrs/mrs_01_1944.html)章节。
   
- 当前数据开发支持调度态细粒度认证和开发态细粒度认证。数据架构、数据服务、数据质量、数据目录仅支持开发态细粒度认证。
- 仅数据开发支持企业模式细粒度认证。
 
#### 启用细粒度认证
1. [登录DataArts Studio管理控制台](https://console.huaweicloud.com/dayu/)。
   
   详情请参考[访问DataArts Studio实例控制台](https://support.huaweicloud.com/usermanual-dataartsstudio/dataartsstudio_01_0001.html)。
   
   
2. 在DataArts Studio控制台首页，选择对应工作空间的"数据安全"模块，进入数据安全页面。
3. 单击左侧导航树中的"访问权限管理 \> 权限应用"，在权限应用页面，进入"细粒度权限应用"页签。
4. 在"细粒度权限应用"页面，选择列表右上方下拉框中的"数据开发"或"数据治理与服务"，单击"联通性测试"，为希望启用细粒度认证的数据连接，进行联通性测试。联通性测试时，系统会使用当前用户账号访问数据源，以确保当前用户访问正常。 
   - 选择"数据开发"将影响数据开发服务。
   
   - 选择"数据治理与服务"将影响数据服务、数据质量、数据架构、数据目录等服务。
   
   
   ![](https://support.huaweicloud.com/usermanual-dataartsstudio/public_sys-resources/note_3.0-zh-cn.png)
   - 由于DWS数据源不支持以华为账号直接访问，因此如果当前以华为账号登录，则会导致联通性测试失败。因此在DWS联通性测试前，需要先完成用户同步，再将当前登录账号切换为IAM子用户账号，且至少具有DWS Database Access权限。
   
   - 细粒度认证页面将支持进行账号映射联通性测试，细粒度认证状态支持选择"开发态账号映射"，详见[启用账号映射（高级特性）](https://support.huaweicloud.com/usermanual-dataartsstudio/dataartsstudio_01_1192.html)。
    
   图1联通性测试   
   ![](https://support.huaweicloud.com/usermanual-dataartsstudio/zh-cn_image_0000002530054995.png "点击放大")
   
   如果联通性测试失败，可从以下方面进行排查：
   1. 确保数据连接上的数据源可用。
   
   2. 数据连接中的Agent选择的CDM集群应为2.10.0.300及以上版本。
   
   3. 已完成用户同步，用户同步操作请参考[同步IAM用户到数据源](https://support.huaweicloud.com/usermanual-dataartsstudio/dataartsstudio_01_1154.html)。
   
   4. DWS连接：
      1. DWS连接中DWS集群guest_agent版本为8.2.1，或在8.2.1以上、9.0.0以下。DWS集群guest_agent版本查看方法请参考[查看DWS集群guest agent版本](https://support.huaweicloud.com/usermanual-dataartsstudio/dataartsstudio_01_1153.html#dataartsstudio_01_1153__section1153213235185)。
      
      2. 已将当前登录账号切换为IAM子用户账号，且具有至少DWS Database Access权限。
       
   
   5. MRS Hive连接： MRS Hive连接中的用户是否配置了代理权限，若没配置代理，可参考[为MRS数据连接用户配置代理权限]。
      
   
   6. MRS Spark连接：
      1. MRS Spark连接中的用户是否配置了代理权限，若没配置代理，可参考[为MRS数据连接用户配置代理权限]。
      
      2. MRS Spark数据连接对应的Spark2x组件是否为多主实例模式。多主实例模式时才支持细粒度认证，为多租户模式时不支持。多租户模式切换多主实例模式请参考[配置多主实例与多租户模式切换](https://support.huaweicloud.com/cmpntguide-mrs/mrs_01_1944.html)章节。
       
   
   
   
   
5. 联通性测试成功后，在细粒度认证状态列，根据所需选择启用开发态或调度态的细粒度认证，然后单击下方的"提交"，即可开启细粒度认证。 
   图2开启细粒度认证   
   ![](https://support.huaweicloud.com/usermanual-dataartsstudio/zh-cn_image_0000002530060405.png "点击放大")
   
   
   
   
   
 
 #### 参考：为MRS数据连接用户配置代理权限
用户在DataArts Studio上通过MRS Hive、Spark数据连接访问数据源时，默认使用数据连接中配置的账号信息访问。而在为MRS Hive、Spark数据连接中的账号信息配置Hive、Spark代理权限后，用户在发起操作时，MRS支持切换为以用户自身身份执行，从而支持细粒度认证。具体配置方法详见[配置Hive代理权限]、[配置Spark代理权限]。
**配置Hive代理权限**
1. 登录MRS FusionInsight Manager。
2. 选择"集群 \> 服务 \> Hive \> 配置 \> 基础配置"，在搜索框中输入参数名"core.site.customized.configs"，配置相应参数，如[图3]所示。
   
   表1配置参数 
   | 参数名                          | 名称                                        | 值  |
   |:---|:---|:---|
   | core.site.customized.configs | hadoop.proxyuser.***数据连接上配置的用户名***.users  | \* |
   | core.site.customized.configs | hadoop.proxyuser.***数据连接上配置的用户名***.groups | \* |
   | core.site.customized.configs | hadoop.proxyuser.***数据连接上配置的用户名***.hosts  | \* |
      
   图3配置core.site.customized.configs参数示例   
   ![](https://support.huaweicloud.com/usermanual-dataartsstudio/zh-cn_image_0000001730388525.png "点击放大")
   
   
   
3. 参数配置完成后，单击左上角的"保存"，在弹窗中单击"确定"保存配置。 
   图4保存配置   
   ![](https://support.huaweicloud.com/usermanual-dataartsstudio/zh-cn_image_0000001682429366.png "点击放大")
   
   
   
4. 保存成功后，切换到实例页签，选择配置已过期的实例后，单击"更多 \> 滚动重启实例"，使配置生效。 
   图5滚动重启实例   
   ![](https://support.huaweicloud.com/usermanual-dataartsstudio/zh-cn_image_0000001730388537.png "点击放大")
   
   
   
**配置Spark代理权限**
1. 登录MRS FusionInsight Manager。
2. 选择"集群 \> 服务 \> Spark\> 配置 \> 基础配置"或"集群 \> 服务 \> Spark2x\> 配置 \> 基础配置"，在搜索框中输入参数名"spark.core-site.customized.configs"，配置相应参数。后文以Spark组件为例进行说明，如[图6]所示。
   
   表2配置参数 
   | 参数名                                                                                                                                                                                                               || 名称                                        | 值  |
   |:---|---|:---|:---|
   | Spark-\>JDBCServer 或 Spark2x-\>JDBCServer2x | core.site.customized.configs | hadoop.proxyuser.***数据连接上配置的用户名***.groups | \* |
   | Spark-\>JDBCServer 或 Spark2x-\>JDBCServer2x | core.site.customized.configs | hadoop.proxyuser.***数据连接上配置的用户名***.hosts  | \* |
   | Spark-\>JDBCServer 或 Spark2x-\>JDBCServer2x | core.site.customized.configs | hadoop.proxyuser.***数据连接上配置的用户名***.users  | \* |
      
   图6配置spark.core-site.customized.configs参数示例   
   ![](https://support.huaweicloud.com/usermanual-dataartsstudio/zh-cn_image_0000001730308617.png "点击放大")
   
   
   
3. 参数配置完成后，单击左上角的"保存"，在弹窗中单击"确定"保存配置。 
   图7保存配置   
   ![](https://support.huaweicloud.com/usermanual-dataartsstudio/zh-cn_image_0000001731921145.png "点击放大")
   
   
   
4. 保存成功后，切换到实例页签，选择配置已过期的实例后，单击"更多 \> 滚动重启实例"，使配置生效。 
   图8滚动重启实例   
   ![](https://support.huaweicloud.com/usermanual-dataartsstudio/zh-cn_image_0000001730308621.png "点击放大")
   
   
   
 
