
# 配置数据集权限 - CreateAndUpdatePermission
#### 功能介绍
配置数据集权限。
#### 授权信息
账号具备所有API的调用权限，如果使用账号下的IAM用户调用当前API，该IAM用户需具备调用API所需的权限，具体权限要求请参见[权限和授权项](https://support.huaweicloud.com/api-dataartsinsight/abcd.html)。
#### URI
POST /v1/{project_id}/datasets/{dataset_id}/permissions
表1路径参数 
| 参数         | 是否必选 | 参数类型   | 描述                                                                                                                                                            |
|:---|:---|:---|:---|
| dataset_id | 是    | String | **参数解释：** 数据集ID **约束限制：** 不涉及 **取值范围：** 不涉及 **默认取值：** 不涉及                                                                                                     |
| project_id | 是    | String | **参数解释：** 项目ID。获取方法请参见[获取项目ID](https://support.huaweicloud.com/api-dataartsinsight/dataartsinsight_projectid.html)。 **约束限制：** 不涉及 **取值范围：** 不涉及 **默认取值：** 不涉及 |
#### 请求参数
表2请求Header参数 
| 参数             | 是否必选 | 参数类型   | 描述                                                                                                                                                                  |
|:---|:---|:---|:---|
| X-Workspace-Id | 是    | String | **参数解释：** 工作空间ID。获取方法请参见[获取工作空间ID](https://support.huaweicloud.com/api-dataartsinsight/dataartsinsight_workspaceid.html)。 **约束限制：** 不涉及 **取值范围：** 不涉及 **默认取值：** 不涉及 |
| X-Auth-Token   | 是    | String | **参数解释：** 用户Token。通过调用IAM服务获取IAM用户Token接口获取，接口返回的响应消息头中"X-Subject-Token"就是需要获取的用户Token。 **约束限制：** 不涉及 **取值范围：** 不涉及 **默认取值：** 不涉及                                   |
   
表3请求Body参数 
| 参数              | 是否必选 | 参数类型                                                                                      | 描述                                                                                                                                                           |
|:---|:---|:---|:---|
| id              | 否    | String                                                                                    | **参数解释：** 规则ID。 **取值范围：** 不涉及                                                                                                                                |
| name            | 是    | String                                                                                    | **参数解释：** 规则名称。 **取值范围：** 不涉及                                                                                                                                |
| dataset_id      | 是    | String                                                                                    | **参数解释：** 数据集ID。 **取值范围：** 不涉及                                                                                                                               |
| is_open         | 是    | Integer                                                                                   | **参数解释：** 当前规则是否生效。 **取值范围：** - 0：否 - 1：是                                                                                                                    |
| permission_type | 是    | String                                                                                    | **参数解释：** 权限类别 **取值范围：** - ROW：行级权限 - COLUMN：列级权限                                                                                                            |
| rule_scope      | 是    | String                                                                                    | **参数解释：** 规则范围 **取值范围：** - ALL：全部用户生效 - SPECIFIED：指定用户生效 - SPECIFIED_NOT：指定用户不生效 说明： - 权限类型为行权限时允许值：ALL、SPECIFIED - 权限类型为列权限时允许值：ALL、SPECIFIED、SPECIFIED_NOT |
| rule_type       | 是    | String                                                                                    | **参数解释：** 规则类型 **取值范围：** 权限类型为COLUMN时： - MASK：数据脱敏 - FORBID：禁止查看 权限类型为ROW时： - BY_CONDITION：条件组合授权 - BY_TAG：用户标签授权                                            |
| rule_user       | 是    | [RuleUserDescribe] object           | 生效用户或用户组列表。                                                                                                                                                  |
| rule_content    | 否    | [PermissionRuleContent] object | **参数解释：** 规则条件详情。 **取值范围：** 不涉及                                                                                                                              |
| display_fields  | 否    | [DisplayFieldsDescribe] object | 用户、用户组、字段ID和名称映射关系。                                                                                                                                          |
   
 表4RuleUserDescribe 
| 参数          | 是否必选 | 参数类型             | 描述                               |
|:---|:---|:---|:---|
| user_groups | 否    | Array of strings | **参数解释：** 用户组ID列表。 **取值范围：** 不涉及 |
| users       | 否    | Array of strings | **参数解释：** 用户ID列表。 **取值范围：** 不涉及  |
   
 表5PermissionRuleContent 
| 参数             | 是否必选 | 参数类型                                                                                                | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
|:---|:---|:---|:---|
| last           | 否    | Integer                                                                                             | **参数解释：** 自定义情况下待处理字符的结束位置。 **取值范围：** 不涉及                                                                                                                                                                                                                                                                                                                                                                                                                                              |
| first          | 否    | Integer                                                                                             | **参数解释：** 自定义情况下待处理字符的开始位置。 **取值范围：** 不涉及                                                                                                                                                                                                                                                                                                                                                                                                                                              |
| mask_type      | 否    | String                                                                                              | **参数解释：** 脱敏类型 **取值范围：** - PRESET_STYLE_1：全脱敏 样式 "\*\*\*\*\*\*" - PRESET_STYLE_2：前三后三保留，其他脱敏 样式 "XXX\*\*\*XXX" - PRESET_STYLE_3：保留中间三位，其他脱敏 样式 "\*\*\*XXX\*\*\*" - RETAIN_FIRST_N_LAST_M：保留前n后m，其他脱敏 样式 "XXX\*\*\*XXX" - RETAIN_N_TO_M：保留n至m，其他脱敏 样式 "\*\*\*XXX\*\*\*" - REPLACE_SPECIAL_CHARACTERS：替换特殊字符 样式"\*X\*X\*X\*" - RETAIN_SPECIAL_CHARACTERS：保留特殊字符 样式"\*X\*X\*X\*" - BEFORE_SPECIAL_CHARACTERS：特殊字符前缀时脱敏 样式 "\*\*\*XXX" - AFTER_SPECIAL_CHARACTERS：特殊字符后缀时脱敏 样式 "XXX\*\*\*" |
| column_ids     | 否    | Array of strings                                                                                    | **参数解释：** 字段ID列表。 **取值范围：** 不涉及                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
| special_words  | 否    | Array of strings                                                                                    | **参数解释：** 特殊字符列表。 **取值范围：** 不涉及                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
| logic_operator | 否    | String                                                                                              | **参数解释：** 当前层次下sub_conditions条件间关联关系； **取值范围：** - AND：且 - OR：或                                                                                                                                                                                                                                                                                                                                                                                                                         |
| condition_node | 否    | Object                                                                                              | **参数解释：** 条件信息。 **取值范围：** 不涉及                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
| sub_conditions | 否    | Array of [RowPermissionDescribe] objects | **参数解释：** 行条件列表信息。 **取值范围：** 不涉及                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
   
 表6RowPermissionDescribe 
| 参数             | 是否必选 | 参数类型                                                                                                | 描述                                                           |
|:---|:---|:---|:---|
| logic_operator | 否    | String                                                                                              | **参数解释：** 当前层sub_conditions条件间关联关系。 **取值范围：** - AND：且 - OR：或 |
| condition_node | 否    | [condition_node] object                         | 条件信息                                                         |
| sub_conditions | 否    | Array of [RowPermissionDescribe] objects | **参数解释：** 行条件信息列表。 **取值范围：** 不涉及                             |
   
 表7condition_node 
| 参数                 | 是否必选 | 参数类型                                                      | 描述                                                                                                                                                                                                                                                                                                                                                                       |
|:---|:---|:---|:---|
| column_id          | 否    | String                                                    | **参数解释：** 字段ID **取值范围：** 不涉及                                                                                                                                                                                                                                                                                                                                             |
| column_name        | 否    | String                                                    | **参数解释：** 字段名称。 **取值范围：** 不涉及                                                                                                                                                                                                                                                                                                                                            |
| is_measure         | 否    | Boolean                                                   | **参数解释：** 是否为度量字段。 **取值范围：** 不涉及                                                                                                                                                                                                                                                                                                                                         |
| execute_expression | 否    | String                                                    | **参数解释：** 可执行函数表达式。 **取值范围：** 不涉及                                                                                                                                                                                                                                                                                                                                        |
| relation_operator  | 否    | String                                                    | **参数解释：** 条件符。 **取值范围：** - ABSOLUTE：绝对值 - BETWEEN：在...之间 - CONTAIN：包含 - END_WITH：以...结尾 - EQUAL：相等 - GREATER_THAN：大于 - GREATER_THAN_OR_EQUAL：大于等于 - IN：在...之内 - LESS_THAN：小于 - LESS_THAN_OR_EQUAL：小于等于 - NOT_CONTAIN：不包含 - NOT_END_WITH：不以...结尾 - NOT_EQUAL：不等于 - NOT_IN：不在...之内 - NOT_NULL：不为空 - NOT_START_WITH：不以...开头 - NO_OPERATOR：无操作符 - NULL：空 - START_WITH：以...开头 |
| data_type          | 否    | String                                                    | **参数解释：** 字段类型。 **取值范围：** 不涉及                                                                                                                                                                                                                                                                                                                                            |
| value              | 否    | [value] object | 条件值信息                                                                                                                                                                                                                                                                                                                                                                    |
   
 表8value 
| 参数          | 是否必选 | 参数类型             | 描述                                                                                                 |
|:---|:---|:---|:---|
| values      | 否    | Array of strings | **参数解释：** 值列表。 **取值范围：** 不涉及                                                                       |
| value_type  | 否    | String           | **参数解释：** 值类型； **取值范围：** - ENUM：去重 - ENUM_ALL：所有 - CONDITION：条件 - TAG_USER_GROUP：标签组 - TAG_USER：标签 |
| value_names | 否    | String           | **参数解释：** 值名称列表。 **取值范围：** 不涉及                                                                     |
   
 表9DisplayFieldsDescribe 
| 参数        | 是否必选 | 参数类型                 | 描述                             |
|:---|:---|:---|:---|
| field_map | 否    | Map\<String,String\> | **参数解释：** 字段描述。 **取值范围：** 不涉及  |
| group_map | 否    | Map\<String,String\> | **参数解释：** 用户组描述。 **取值范围：** 不涉及 |
| user_map  | 否    | Map\<String,String\> | **参数解释：** 用户描述。 **取值范围：** 不涉及  |
   
#### 响应参数
**状态码：200**
表10响应Body参数 
| 参数              | 参数类型                                                                                       | 描述                                                                                                                                                           |
|:---|:---|:---|
| id              | String                                                                                     | **参数解释：** 规则ID。 **取值范围：** 不涉及                                                                                                                                |
| name            | String                                                                                     | **参数解释：** 规则名称。 **取值范围：** 不涉及                                                                                                                                |
| dataset_id      | String                                                                                     | **参数解释：** 数据集ID。 **取值范围：** 不涉及                                                                                                                               |
| is_open         | Integer                                                                                    | **参数解释：** 当前规则是否生效。 **取值范围：** - 0：否 - 1：是                                                                                                                    |
| permission_type | String                                                                                     | **参数解释：** 权限类别 **取值范围：** - ROW：行级权限 - COLUMN：列级权限                                                                                                            |
| rule_scope      | String                                                                                     | **参数解释：** 规则范围 **取值范围：** - ALL：全部用户生效 - SPECIFIED：指定用户生效 - SPECIFIED_NOT：指定用户不生效 说明： - 权限类型为行权限时允许值：ALL、SPECIFIED - 权限类型为列权限时允许值：ALL、SPECIFIED、SPECIFIED_NOT |
| rule_type       | String                                                                                     | **参数解释：** 规则类型 **取值范围：** 权限类型为COLUMN时： - MASK：数据脱敏 - FORBID：禁止查看 权限类型为ROW时： - BY_CONDITION：条件组合授权 - BY_TAG：用户标签授权                                            |
| rule_user       | [RuleUserDescribe] object           | 生效用户或用户组列表。                                                                                                                                                  |
| rule_content    | [PermissionRuleContent] object | **参数解释：** 规则条件详情。 **取值范围：** 不涉及                                                                                                                              |
| display_fields  | [DisplayFieldsDescribe] object | 用户、用户组、字段ID和名称映射关系。                                                                                                                                          |
   
 表11RuleUserDescribe 
| 参数          | 参数类型             | 描述                               |
|:---|:---|:---|
| user_groups | Array of strings | **参数解释：** 用户组ID列表。 **取值范围：** 不涉及 |
| users       | Array of strings | **参数解释：** 用户ID列表。 **取值范围：** 不涉及  |
   
 表12PermissionRuleContent 
| 参数             | 参数类型                                                                                                 | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
|:---|:---|:---|
| last           | Integer                                                                                              | **参数解释：** 自定义情况下待处理字符的结束位置。 **取值范围：** 不涉及                                                                                                                                                                                                                                                                                                                                                                                                                                              |
| first          | Integer                                                                                              | **参数解释：** 自定义情况下待处理字符的开始位置。 **取值范围：** 不涉及                                                                                                                                                                                                                                                                                                                                                                                                                                              |
| mask_type      | String                                                                                               | **参数解释：** 脱敏类型 **取值范围：** - PRESET_STYLE_1：全脱敏 样式 "\*\*\*\*\*\*" - PRESET_STYLE_2：前三后三保留，其他脱敏 样式 "XXX\*\*\*XXX" - PRESET_STYLE_3：保留中间三位，其他脱敏 样式 "\*\*\*XXX\*\*\*" - RETAIN_FIRST_N_LAST_M：保留前n后m，其他脱敏 样式 "XXX\*\*\*XXX" - RETAIN_N_TO_M：保留n至m，其他脱敏 样式 "\*\*\*XXX\*\*\*" - REPLACE_SPECIAL_CHARACTERS：替换特殊字符 样式"\*X\*X\*X\*" - RETAIN_SPECIAL_CHARACTERS：保留特殊字符 样式"\*X\*X\*X\*" - BEFORE_SPECIAL_CHARACTERS：特殊字符前缀时脱敏 样式 "\*\*\*XXX" - AFTER_SPECIAL_CHARACTERS：特殊字符后缀时脱敏 样式 "XXX\*\*\*" |
| column_ids     | Array of strings                                                                                     | **参数解释：** 字段ID列表。 **取值范围：** 不涉及                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
| special_words  | Array of strings                                                                                     | **参数解释：** 特殊字符列表。 **取值范围：** 不涉及                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
| logic_operator | String                                                                                               | **参数解释：** 当前层次下sub_conditions条件间关联关系； **取值范围：** - AND：且 - OR：或                                                                                                                                                                                                                                                                                                                                                                                                                         |
| condition_node | Object                                                                                               | **参数解释：** 条件信息。 **取值范围：** 不涉及                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
| sub_conditions | Array of [RowPermissionDescribe] objects | **参数解释：** 行条件列表信息。 **取值范围：** 不涉及                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
   
 表13RowPermissionDescribe 
| 参数             | 参数类型                                                                                                 | 描述                                                           |
|:---|:---|:---|
| logic_operator | String                                                                                               | **参数解释：** 当前层sub_conditions条件间关联关系。 **取值范围：** - AND：且 - OR：或 |
| condition_node | [condition_node] object                         | 条件信息                                                         |
| sub_conditions | Array of [RowPermissionDescribe] objects | **参数解释：** 行条件信息列表。 **取值范围：** 不涉及                             |
   
 表14condition_node 
| 参数                 | 参数类型                                                       | 描述                                                                                                                                                                                                                                                                                                                                                                       |
|:---|:---|:---|
| column_id          | String                                                     | **参数解释：** 字段ID **取值范围：** 不涉及                                                                                                                                                                                                                                                                                                                                             |
| column_name        | String                                                     | **参数解释：** 字段名称。 **取值范围：** 不涉及                                                                                                                                                                                                                                                                                                                                            |
| is_measure         | Boolean                                                    | **参数解释：** 是否为度量字段。 **取值范围：** 不涉及                                                                                                                                                                                                                                                                                                                                         |
| execute_expression | String                                                     | **参数解释：** 可执行函数表达式。 **取值范围：** 不涉及                                                                                                                                                                                                                                                                                                                                        |
| relation_operator  | String                                                     | **参数解释：** 条件符。 **取值范围：** - ABSOLUTE：绝对值 - BETWEEN：在...之间 - CONTAIN：包含 - END_WITH：以...结尾 - EQUAL：相等 - GREATER_THAN：大于 - GREATER_THAN_OR_EQUAL：大于等于 - IN：在...之内 - LESS_THAN：小于 - LESS_THAN_OR_EQUAL：小于等于 - NOT_CONTAIN：不包含 - NOT_END_WITH：不以...结尾 - NOT_EQUAL：不等于 - NOT_IN：不在...之内 - NOT_NULL：不为空 - NOT_START_WITH：不以...开头 - NO_OPERATOR：无操作符 - NULL：空 - START_WITH：以...开头 |
| data_type          | String                                                     | **参数解释：** 字段类型。 **取值范围：** 不涉及                                                                                                                                                                                                                                                                                                                                            |
| value              | [value] object | 条件值信息                                                                                                                                                                                                                                                                                                                                                                    |
   
 表15value 
| 参数          | 参数类型             | 描述                                                                                                 |
|:---|:---|:---|
| values      | Array of strings | **参数解释：** 值列表。 **取值范围：** 不涉及                                                                       |
| value_type  | String           | **参数解释：** 值类型； **取值范围：** - ENUM：去重 - ENUM_ALL：所有 - CONDITION：条件 - TAG_USER_GROUP：标签组 - TAG_USER：标签 |
| value_names | String           | **参数解释：** 值名称列表。 **取值范围：** 不涉及                                                                     |
   
 表16DisplayFieldsDescribe 
| 参数        | 参数类型                 | 描述                             |
|:---|:---|:---|
| field_map | Map\<String,String\> | **参数解释：** 字段描述。 **取值范围：** 不涉及  |
| group_map | Map\<String,String\> | **参数解释：** 用户组描述。 **取值范围：** 不涉及 |
| user_map  | Map\<String,String\> | **参数解释：** 用户描述。 **取值范围：** 不涉及  |
   
#### 请求示例
配置数据集权限。
```
POST https://{endpoint}/v1/{project_id}/datasets/{dataset_id}/permissions
{
  "name" : "行权限8",
  "dataset_id" : "xxxxxxx-1ae0-4b4a-a476-48ea10b4bbd3",
  "is_open" : 1,
  "permission_type" : "ROW",
  "rule_scope" : "ALL",
  "rule_user" : {
    "users" : [ ],
    "userGroups" : [ ]
  },
  "rule_type" : "BY_CONDITION",
  "rule_content" : {
    "logic_operator" : "AND",
    "condition_node" : null,
    "sub_conditions" : [ {
      "logic_operator" : null,
      "condition_node" : {
        "column_id" : "cxxxxx-a43e-4c09-aec5-a7aeedb19822.ca_country",
        "column_name" : "ca_country",
        "is_measure" : false,
        "execute_expression" : null,
        "relation_operator" : "CONTAIN",
        "data_type" : null,
        "value" : {
          "values" : [ "123" ],
          "value_type" : "CONDITION",
          "value_names" : null
        }
      },
      "sub_conditions" : [ ]
    }, {
      "logic_operator" : null,
      "condition_node" : {
        "column_id" : "cxxxxxx-a43e-4c09-aec5-a7aeedb19822.ca_zip",
        "column_name" : "ca_zip",
        "is_measure" : false,
        "execute_expression" : null,
        "relation_operator" : "CONTAIN",
        "data_type" : null,
        "value" : {
          "values" : [ "weq" ],
          "value_type" : "CONDITION",
          "value_names" : null
        }
      },
      "sub_conditions" : [ ]
    }, {
      "logic_operator" : "OR",
      "condition_node" : null,
      "sub_conditions" : [ {
        "logic_operator" : null,
        "condition_node" : {
          "column_id" : "xxxxxxx-32bb-4002-9c55-2a47415bdaf6.cs_item_sk",
          "column_name" : "cs_item_sk",
          "is_measure" : true,
          "execute_expression" : null,
          "relation_operator" : "NOT-EQUAL",
          "data_type" : null,
          "value" : {
            "values" : [ "12" ],
            "value_type" : "CONDITION",
            "value_names" : null
          }
        },
        "sub_conditions" : [ ]
      } ]
    } ]
  },
  "display_fields" : {
    "user_map" : { },
    "group_map" : { }
  }
}
```
#### 响应示例
**状态码：200**
配置成功返回信息。
```
{
  "id" : "xxxxxxxe2-46cd7dab427e",
  "name" : "行权限8",
  "dataset_id" : "xxxxxx-1ae0-4b4a-a476-48ea10b4bbd3",
  "is_open" : true,
  "permission_type" : "ROW",
  "rule_scope" : "ALL",
  "rule_user" : {
    "user_groups" : null,
    "users" : [ ]
  },
  "display_fields" : {
    "user_map" : { },
    "group_map" : { },
    "field_map" : null
  },
  "rule_type" : "BY_CONDITION",
  "rule_content" : {
    "logic_operator" : "AND",
    "condition_node" : null,
    "sub_conditions" : [ {
      "logic_operator" : null,
      "condition_node" : {
        "column_id" : "xxxxxxxx-a43e-4c09-aec5-a7aeedb19822.ca_country",
        "column_name" : "ca_country",
        "is_measure" : false,
        "execute_expression" : null,
        "relation_operator" : "CONTAIN",
        "data_type" : null,
        "value" : {
          "values" : [ "123" ],
          "value_type" : "CONDITION",
          "value_names" : null
        }
      },
      "sub_conditions" : [ ]
    }, {
      "logic_operator" : null,
      "condition_node" : {
        "column_id" : "cxxxxxx-a43e-4c09-aec5-a7aeedb19822.ca_zip",
        "column_name" : "ca_zip",
        "is_measure" : false,
        "execute_expression" : null,
        "relation_operator" : "CONTAIN",
        "data_type" : null,
        "value" : {
          "values" : [ "weq" ],
          "value_type" : "CONDITION",
          "value_names" : null
        }
      },
      "sub_conditions" : [ ]
    }, {
      "logic_operator" : "OR",
      "condition_node" : null,
      "sub_conditions" : [ {
        "logic_operator" : null,
        "condition_node" : {
          "column_id" : "xxxxxxxx-32bb-4002-9c55-2a47415bdaf6.cs_item_sk",
          "column_name" : "cs_item_sk",
          "is_measure" : true,
          "execute_expression" : null,
          "relation_operator" : "NOT-EQUAL",
          "data_type" : null,
          "value" : {
            "values" : [ "12" ],
            "value_type" : "CONDITION",
            "value_names" : null
          }
        },
        "sub_conditions" : [ ]
      } ]
    } ]
  }
}
```
#### 状态码
| 状态码 | 描述        |
|:---|:---|
| 200 | 配置成功返回信息。 |
   
#### 错误码
请参见[错误码](https://support.huaweicloud.com/api-dataartsinsight/ErrorCode.html)。
