

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 数据来源权限 API
<a name="v10-Grafana-API-DatasourcePermissions"></a>

使用数据来源权限 API 来启用、禁用、列出、添加和移除数据来源的权限。

您可以为用户或团队设置权限。无法为管理员设置权限，因为他们始终可以访问所有内容。

权限字段的权限级别如下：
+ 1 = 查询

**注意**  
要在您的亚马逊托管 Grafana 工作空间中使用 Grafana API，您必须拥有有效的服务账户令牌。您可以将其包含在 API 请求的 `Authorization` 字段中。

## 为数据来源启用权限
<a name="v10-Grafana-API-DatasourcePermissions-enable"></a>

```
POST /api/datasources/:id/enable-permissions
```

为具有给定 id 的数据来源启用权限。在添加允许某些用户或团队查询数据来源的权限之前，除组织管理员外，任何人都无法查询数据来源。

**示例请求**

```
POST /api/datasources/1/enable-permissions
Accept: application/json
Content-Type: application/json
Authorization: Bearer eyJrIjoiT0tTcG1pUlY2RnVKZTFVaDFsNFZXdE9ZWmNrMkZYbk
```

**响应示例**

```
HTTP/1.1 200 OK
Content-Type: application/json; charset=UTF-8
Content-Length: 35

{"message":"Datasource permissions enabled"}
```

状态代码：
+ **200**：已创建
+ **400**：无法启用权限，详情请参阅响应正文。
+ **401**：未经授权
+ **403**：拒绝访问
+ **404**：未找到数据来源

## 禁用数据来源的权限
<a name="v10-Grafana-API-DatasourcePermissions-disable"></a>

```
POST /api/datasources/:id/disable-permissions
```

禁用具有给定 id 的数据来源的权限。所有现有权限都将被移除，任何人都可以查询数据来源。

**示例请求**

```
POST /api/datasources/1/disable-permissions
Accept: application/json
Content-Type: application/json
Authorization: Bearer eyJrIjoiT0tTcG1pUlY2RnVKZTFVaDFsNFZXdE9ZWmNrMkZYbk

{}
```

**响应示例**

```
HTTP/1.1 200 OK
Content-Type: application/json; charset=UTF-8
Content-Length: 35

{"message":"Datasource permissions disabled"}
```

状态代码：
+ **200**：确定
+ **400**：无法禁用权限，详情请参阅响应正文。
+ **401**：未经授权
+ **403**：拒绝访问
+ **404**：未找到数据来源

## 获取数据来源的权限
<a name="v10-Grafana-API-DatasourcePermissions-get"></a>

```
GET /api/datasources/:id/permissions
```

使用给定 `id` 获取数据来源的所有现有权限。

**示例请求**

```
GET /api/datasources/1/permissions HTTP/1.1
Accept: application/json
Content-Type: application/json
Authorization: Bearer eyJrIjoiT0tTcG1pUlY2RnVKZTFVaDFsNFZXdE9ZWmNrMkZYbk
```

**响应示例**

```
HTTP/1.1 200 OK
Content-Type: application/json; charset=UTF-8
Content-Length: 551

{
  "datasourceId": 1,
  "enabled": true,
  "permissions":
  [
    {
      "id": 1,
      "datasourceId": 1,
      "userId": 1,
      "userLogin": "user",
      "userEmail": "user@test.com",
      "userAvatarUrl": "/avatar/46d229b033af06a191ff2267bca9ae",
      "permission": 1,
      "permissionName": "Query",
      "created": "2017-06-20T02:00:00+02:00",
      "updated": "2017-06-20T02:00:00+02:00",
    },
    {
      "id": 2,
      "datasourceId": 1,
      "teamId": 1,
      "team": "A Team",
      "teamAvatarUrl": "/avatar/46d229b033af06a191ff2267bca9ae",
      "permission": 1,
      "permissionName": "Query",
      "created": "2017-06-20T02:00:00+02:00",
      "updated": "2017-06-20T02:00:00+02:00",
    }
  ]
}
```

状态代码：
+ **200**：确定
+ **401**：未经授权
+ **403**：拒绝访问
+ **404**：未找到数据来源

## 为数据来源添加权限
<a name="v10-Grafana-API-DatasourcePermissions-add"></a>

```
POST /api/datasources/:id/permissions
```

添加给定 `id` 的数据来源的用户权限。

**添加用户权限的请求示例**

```
POST /api/datasources/1/permissions
Accept: application/json
Content-Type: application/json
Authorization: Bearer eyJrIjoiT0tTcG1pUlY2RnVKZTFVaDFsNFZXdE9ZWmNrMkZYbk

{
  "userId": 1,
  "permission": 1
}
```

**添加用户权限的响应示例**

```
HTTP/1.1 200 OK
Content-Type: application/json; charset=UTF-8
Content-Length: 35

{"message":"Datasource permission added"}
```

**添加团队权限的请求示例**

```
POST /api/datasources/1/permissions
Accept: application/json
Content-Type: application/json
Authorization: Bearer eyJrIjoiT0tTcG1pUlY2RnVKZTFVaDFsNFZXdE9ZWmNrMkZYbk

{
  "teamId": 1,
  "permission": 1
}
```

**添加团队权限的响应示例**

```
HTTP/1.1 200 OK
Content-Type: application/json; charset=UTF-8
Content-Length: 35

{"message":"Datasource permission added"}
```

状态代码：
+ **200**：确定
+ **400**：无法添加权限，详情请参阅响应正文。
+ **401**：未经授权
+ **403**：拒绝访问
+ **404**：未找到数据来源

## 移除数据来源的权限
<a name="v10-Grafana-API-DatasourcePermissions-remove"></a>

```
DELETE /api/datasources/:id/permissions/:permissionId
```

移除具有给定 `id` 的数据来源的具有给定 permissionId 的权限。

**示例请求**

```
DELETE /api/datasources/1/permissions/2
Accept: application/json
Content-Type: application/json
Authorization: Bearer eyJrIjoiT0tTcG1pUlY2RnVKZTFVaDFsNFZXdE9ZWmNrMkZYbk
```

**响应示例**

```
HTTP/1.1 200 OK
Content-Type: application/json; charset=UTF-8
Content-Length: 35

{"message":"Datasource permission removed"}
```

状态代码：
+ **200**：确定
+ **401**：未经授权
+ **403**：拒绝访问
+ **404**：未找到数据来源或未找到权限