
# 批量鉴权 - BatchCheckPermission
#### 功能介绍
批量鉴权，此接口仅能从租户面调用，无法从管控面调用。
#### 调试
您可以在[API Explorer](https://console.huaweicloud.com/apiexplorer/#/openapi/LakeFormation/doc?api=BatchCheckPermission)中调试该接口，支持自动认证鉴权。API Explorer可以自动生成SDK代码示例，并提供SDK代码示例调试功能。
#### 授权信息
账号具备所有API的调用权限，如果使用账号下的IAM用户调用当前API，该IAM用户需具备调用API所需的权限，具体权限要求请参见[权限和授权项](https://support.huaweicloud.com/api-lakeformation/abcd.html)。
#### URI
POST /v1/{project_id}/instances/{instance_id}/policies/check-permission
表1路径参数 
| 参数          | 是否必选 | 参数类型   | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
|:---|:---|:---|:---|
| project_id  | 是    | String | **参数解释:** 项目编号。获取方法，请参见[获取项目ID](https://support.huaweicloud.com/api-lakeformation/lakeformation_04_0026.html)。 **约束限制:** 长度为1\~64个字符 **取值范围:** 长度为1\~64个字符 **默认取值:** 不涉及 |
| instance_id | 是    | String | **参数解释:** LakeFormation实例ID。创建实例时自动生成。例如：2180518f-42b8-4947-b20b-adfc53981a25。 **约束限制:** 最小长度为1 **取值范围:** 最小长度为1 **默认取值:** 不涉及                                           |
   
#### 请求参数
表2请求Header参数 
| 参数           | 是否必选 | 参数类型             | 描述                                                                                                                                                                                                                                                                                                                                                                       |
|:---|:---|:---|:---|
| X-Auth-Token | 是    | Array of strings | **参数解释:** 租户token。 **约束限制:** 数组元素个数为1\~100 **取值范围:** 数组元素个数为1\~100 **默认取值:** 不涉及 |
   
表3请求Body参数 
| 参数             | 是否必选 | 参数类型                                                                           | 描述                                                                                                                                                                                                                                                                                                                                                                   |
|:---|:---|:---|:---|
| access_request | 是    | Array of [AccessRequest] objects | **参数解释:** 主体信息 **约束限制:** 数组元素个数为0\~100 **取值范围:** 数组元素个数为0\~100 **默认取值:** 不涉及 |
   
 表4AccessRequest 
| 参数        | 是否必选 | 参数类型                                                                                     | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |
|:---|:---|:---|:---|
| resource  | 是    | [ResourceInput] object                     | **参数解释:** 资源信息 **约束限制:** 不涉及 **取值范围:** 不涉及 **默认取值:** 不涉及                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
| principal | 是    | Array of [AssociatePrincipal] objects | **参数解释:** 授权主体信息 **约束限制:** 数组元素个数为0\~2000 **取值范围:** 数组元素个数为0\~2000 **默认取值:** 不涉及                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      |
| action    | 是    | String                                                                                   | **参数解释:** 权限信息：ALL、CREATE、ALTER、DROP、DESCRIBE、EXEC、CREATE_DATABASE、LIST_DATABASE、CREATE_TABLE、LIST_TABLE、CREATE_FUNC、LIST_FUNC、REGISTER_MODEL、LIST_MODEL、CREATE_MODEL、CREATE_DATASET、LIST_DATASET、READ_DATASET、WRITE_DATASET、INSERT、UPDATE、DELETE、SELECT、READ、WRITE、OPERATE、USE **约束限制:** 可选值为：ALL, CREATE, ALTER, DROP, DESCRIBE, EXEC, CREATE_DATABASE, LIST_DATABASE, CREATE_TABLE, LIST_TABLE, CREATE_FUNC, LIST_FUNC, REGISTER_MODEL, LIST_MODEL, CREATE_MODEL, CREATE_DATASET, LIST_DATASET, READ_DATASET, WRITE_DATASET, INSERT, UPDATE, DELETE, SELECT, READ, WRITE, OPERATE, USE **取值范围:** 不涉及 **默认取值:** 不涉及 |
   
 表5ResourceInput 
| 参数            | 是否必选 | 参数类型             | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |
|:---|:---|:---|:---|
| resource_type | 是    | String           | **参数解释:** 元数据资源类型：CATALOG、DATABASE、TABLE、FUNC、MODEL、DATASET、COLUMN、URI **约束限制:** 可选值为：CATALOG, DATABASE, TABLE, FUNC, MODEL, DATASET, COLUMN, URI **取值范围:** 不涉及 **默认取值:** 不涉及 |
| catalog       | 否    | String           | **参数解释:** catalog名称。只能包含字母、数字和下划线，且长度为1\~256个字符 **约束限制:** 长度为1\~256个字符 **取值范围:** 长度为1\~256个字符 **默认取值:** 不涉及                                                                   |
| database      | 否    | String           | **参数解释:** 数据库名称。只能包含中文、字母、数字、下划线、中划线，且长度为1到128个字符 **约束限制:** 长度为1\~128个字符 **取值范围:** 长度为1\~128个字符 **默认取值:** 不涉及                                                                 |
| function      | 否    | String           | **参数解释:** 函数名称。只能包含字母、数字和下划线，且长度为1\~256个字符 **约束限制:** 长度为1\~256个字符 **取值范围:** 长度为1\~256个字符 **默认取值:** 不涉及                                                                        |
| table         | 否    | String           | **参数解释:** 表名称。只能包含中文、字母、数字、下划线、中划线，且长度为1\~256个字符 **约束限制:** 长度为1\~256个字符 **取值范围:** 长度为1\~256个字符 **默认取值:** 不涉及                                                                  |
| column        | 否    | String           | **参数解释:** 列名称。只能包含中文、字母、数字和_-+\*(), 特殊字符，且长度为1\~767个字符 **约束限制:** 长度为1\~767个字符 **取值范围:** 长度为1\~767个字符 **默认取值:** 不涉及                                                            |
| uri           | 否    | String           | **参数解释:** URI **约束限制:** 长度为0\~4000个字符 **取值范围:** 长度为0\~4000个字符 **默认取值:** 不涉及                                                                                                   |
| columns       | 否    | Array of strings | **参数解释:** 列名称列表 **约束限制:** 数组元素个数为0\~2000 **取值范围:** 长度为1\~767个字符，数组元素个数为0\~2000 **默认取值:** 不涉及                                                                                  |
| model         | 否    | String           | **参数解释:** 模型名称 **约束限制:** 长度为1\~256个字符 **取值范围:** 长度为1\~256个字符 **默认取值:** 不涉及                                                                                                    |
| dataset       | 否    | String           | **参数解释:** 数据集名称 **约束限制:** 长度为1\~256个字符 **取值范围:** 长度为1\~256个字符 **默认取值:** 不涉及                                                                                                   |
   
 表6AssociatePrincipal 
| 参数               | 是否必选 | 参数类型   | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |
|:---|:---|:---|:---|
| principal_type   | 是    | String | **参数解释:** 主体类型： USER-用户 GROUP-组 ROLE-角色 SHARE-共享 OTHER-其它 **约束限制:** 可选值为：USER, GROUP, ROLE, SHARE, OTHER **取值范围:** 不涉及 **默认取值:** 不涉及                                                                         |
| principal_source | 是    | String | **参数解释:** 主体来源： IAM-云用户 SAML-联邦 LDAP-LDAP用户 LOCAL-本地用户 AGENTTENANT-委托 OTHER-其它 **约束限制:** 可选值为：IAM, SAML, LDAP, LOCAL, AGENTTENANT, OTHER **取值范围:** 不涉及 **默认取值:** 不涉及 |
| principal_name   | 是    | String | **参数解释:** 主体名称。长度为1\~128个字符。principal_name支持中划线'-'字符，但是对Principal进行授权时不支持'-'字符，可通过将有中划线的用户绑定到相关角色进行授权 **约束限制:** 长度为1\~128个字符 **取值范围:** 长度为1\~128个字符 **默认取值:** 不涉及                                                                                                                                                                                                                                                    |
   
#### 响应参数
**状态码：200**
表7响应Body参数 
| 参数       | 参数类型                                                                                            | 描述        |
|:---|:---|:---|
| \[数组元素\] | Array of [CheckPermissionResult] objects | 查询权限返回结果。 |
   
 表8CheckPermissionResult 
| 参数            | 参数类型                                                                  | 描述                                                            |
|:---|:---|:---|
| check_result  | Boolean                                                               | **参数解释:** 对应输入策略的检查结果 |
| error_message | String                                                                | **参数解释:** 错误信息        |
| data_filters  | Array of strings                                                      | **参数解释:** 行过滤条件列表     |
| data_masks    | Array of [DataMask] objects | **参数解释:** 列脱敏条件列表     |
   
 表9DataMask 
| 参数             | 参数类型   | 描述                                                                                                                                                                                 |
|:---|:---|:---|
| data_mask_type | String | **参数解释:** data mask type：REDACT修订， HASH哈希加密，PARTIAL_MASK部分掩码，NULLIFY用NULL值替换原值，UNMASKED原样显示，DATA_ONLY_SHOW_YEAR仅显示日期字符串的年份部分，CUSTOM自定义脱敏规则 |
| data_mask      | String | **参数解释:** 脱敏规则选项                                                                                                                           |
   
**状态码：400**
表10响应Body参数 
| 参数           | 参数类型   | 描述                                                       |
|:---|:---|:---|
| error_code   | String | **参数解释:** 错误码    |
| error_msg    | String | **参数解释:** 错误描述   |
| solution_msg | String | **参数解释:** 解决方案描述 |
   
**状态码：401**
表11响应Body参数 
| 参数           | 参数类型   | 描述                                                       |
|:---|:---|:---|
| error_code   | String | **参数解释:** 错误码    |
| error_msg    | String | **参数解释:** 错误描述   |
| solution_msg | String | **参数解释:** 解决方案描述 |
   
**状态码：403**
表12响应Body参数 
| 参数         | 参数类型                                                  | 描述                                                     |
|:---|:---|:---|
| error      | [Error] object | **参数解释:** 错误信息 |
| error_code | String                                                | **参数解释:** 错误码  |
| error_msg  | String                                                | **参数解释:** 错误描述 |
| title      | String                                                | **参数解释:** 标题   |
   
 表13Error 
| 参数         | 参数类型   | 描述                                                     |
|:---|:---|:---|
| error_code | String | **参数解释:** 错误码  |
| error_msg  | String | **参数解释:** 错误描述 |
| title      | String | **参数解释:** 标题   |
| message    | String | **参数解释:** 错误信息 |
| code       | String | **参数解释:** 状态码  |
   
**状态码：404**
表14响应Body参数 
| 参数           | 参数类型   | 描述                                                       |
|:---|:---|:---|
| error_code   | String | **参数解释:** 错误码    |
| error_msg    | String | **参数解释:** 错误描述   |
| solution_msg | String | **参数解释:** 解决方案描述 |
   
**状态码：408**
表15响应Body参数 
| 参数           | 参数类型   | 描述                                                       |
|:---|:---|:---|
| error_code   | String | **参数解释:** 错误码    |
| error_msg    | String | **参数解释:** 错误描述   |
| solution_msg | String | **参数解释:** 解决方案描述 |
   
**状态码：500**
表16响应Body参数 
| 参数           | 参数类型   | 描述                                                       |
|:---|:---|:---|
| error_code   | String | **参数解释:** 错误码    |
| error_msg    | String | **参数解释:** 错误描述   |
| solution_msg | String | **参数解释:** 解决方案描述 |
   
#### 请求示例
```
GET https://{endpoint}/v1/{project_id}/instances/{instance_id}/policies/check-permission
{
  "access_request" : [ {
    "resource" : {
      "resource_type" : "DATABASE",
      "catalog" : "hive",
      "database" : "test_database_name"
    },
    "principal" : [ {
      "principal_type" : "GROUP",
      "principal_source" : "IAM",
      "principal_name" : "onebox"
    } ],
    "action" : "ALL"
  } ]
}
```
#### 响应示例
**状态码：200**
OK
```
[ {
  "check_result" : false,
  "error_message" : "test error message"
} ]
```
**状态码：400**
Bad Request
```
{
  "error_code" : "common.01000001",
  "error_msg" : "failed to read http request, please check your input, code: 400, reason: Type mismatch., cause: TypeMismatchException"
}
```
**状态码：401**
Unauthorized
```
{
  "error_code" : "APIG.1002",
  "error_msg" : "Incorrect token or token resolution failed"
}
```
**状态码：403**
Forbidden
```
{
  "error" : {
    "code" : "403",
    "message" : "X-Auth-Token is invalid in the request",
    "error_code" : null,
    "error_msg" : null,
    "title" : "Forbidden"
  },
  "error_code" : "403",
  "error_msg" : "X-Auth-Token is invalid in the request",
  "title" : "Forbidden"
}
```
**状态码：404**
Not Found
```
{
  "error_code" : "common.01000001",
  "error_msg" : "response status exception, code: 404"
}
```
**状态码：408**
Request Timeout
```
{
  "error_code" : "common.00000408",
  "error_msg" : "timeout exception occurred"
}
```
**状态码：500**
Internal Server Error
```
{
  "error_code" : "common.00000500",
  "error_msg" : "internal error"
}
```
#### 状态码
| 状态码 | 描述                    |
|:---|:---|
| 200 | OK                    |
| 400 | Bad Request           |
| 401 | Unauthorized          |
| 403 | Forbidden             |
| 404 | Not Found             |
| 408 | Request Timeout       |
| 500 | Internal Server Error |
   
#### 错误码
请参见[错误码](https://support.huaweicloud.com/api-lakeformation/ErrorCode.html)。
