

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 資料來源許可 API
<a name="v12-Grafana-API-DatasourcePermissions"></a>

使用資料來源許可 API 來啟用、停用、列出、新增和移除資料來源的許可。

您可以為使用者或團隊設定許可。無法為管理員設定許可，因為管理員永遠可以存取所有內容。

許可欄位的許可層級如下：
+ 1 = 查詢

**注意**  
若要搭配 Amazon Managed Grafana 工作區使用 Grafana API，您必須擁有有效的服務帳戶字符。您可以在 API 請求的 `Authorization` 欄位中包含此項目。

## 啟用資料來源的許可
<a name="v12-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="v12-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="v12-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="v12-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="v12-Grafana-API-DatasourcePermissions-remove"></a>

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

針對具有指定 的資料來源，移除具有指定 permissionId 的許可`id`。

**範例請求**

```
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** — 找不到資料來源或找不到許可