

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

# 데이터 소스 권한 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
```

지정된 `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** - 데이터 소스 또는 권한을 찾을 수 없음