数据源权限 API
数据源权限仅在 Grafana Enterprise 中可用。了解更多关于Grafana Enterprise。
如果您运行的是 Grafana Enterprise,对于某些端点,您需要拥有特定权限。请参阅基于角色的访问控制权限了解更多信息。
此 API 可用于列出、添加和移除数据源的权限。
可以为用户、团队、服务账号或基本角色(Admin、Editor、Viewer)设置权限。
获取数据源权限
GET /api/access-control/datasources/:uid
获取具有给定 uid
的数据源的所有现有权限。
所需权限
请参阅简介中的说明。
操作 | 范围 |
---|---|
datasources.permissions:read | datasources:* datasources:uid:* datasources:uid:my_datasource (单个数据源) |
示例
请求示例
GET /api/access-control/datasources/my_datasource 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
[
{
"id": 1,
"roleName": "fixed:datasources:reader",
"isManaged": false,
"isInherited": false,
"isServiceAccount": false,
"userId": 1,
"userLogin": "admin_user",
"userAvatarUrl": "/avatar/admin_user",
"actions": [
"datasources:read",
"datasources:query",
"datasources:read",
"datasources:query",
"datasources:write",
"datasources:delete"
],
"permission": "Edit"
},
{
"id": 2,
"roleName": "managed:teams:1:permissions",
"isManaged": true,
"isInherited": false,
"isServiceAccount": false,
"team": "A team",
"teamId": 1,
"teamAvatarUrl": "/avatar/523d70c8551046f441727d690431858c",
"actions": [
"datasources:read",
"datasources:query"
],
"permission": "Query"
},
{
"id": 3,
"roleName": "basic:admin",
"isManaged": false,
"isInherited": false,
"isServiceAccount": false,
"builtInRole": "Admin",
"actions": [
"datasources:query",
"datasources:read",
"datasources:write",
"datasources:delete"
],
"permission": "Edit"
},
]
状态码
- 200 - 成功
- 401 - 未经授权
- 403 - 访问被拒绝
- 500 - 内部错误
添加或撤销用户对数据源的访问权限
POST /api/access-control/datasources/:uid/users/:id
设置具有给定 uid
的数据源的用户权限。
要添加权限,将 permission
字段设置为 Query
、Edit
或 Admin
。要移除权限,将 permission
字段设置为空字符串。
所需权限
请参阅简介中的说明。
操作 | 范围 |
---|---|
datasources.permissions:write | datasources:* datasources:uid:* datasources:uid:my_datasource (单个数据源) |
示例
请求示例
POST /api/access-control/datasources/my_datasource/users/1
Accept: application/json
Content-Type: application/json
Authorization: Bearer eyJrIjoiT0tTcG1pUlY2RnVKZTFVaDFsNFZXdE9ZWmNrMkZYbk
{
"permission": "Query",
}
响应示例
HTTP/1.1 200 OK
Content-Type: application/json; charset=UTF-8
Content-Length: 35
{"message": "Permission updated"}
请求示例
POST /api/access-control/datasources/my_datasource/users/1
Accept: application/json
Content-Type: application/json
Authorization: Bearer eyJrIjoiT0tTcG1pUlY2RnVKZTFVaDFsNFZXdE9ZWmNrMkZYbk
{
"permission": "",
}
响应示例
HTTP/1.1 200 OK
Content-Type: application/json; charset=UTF-8
Content-Length: 35
{"message": "Permission removed"}
状态码
- 200 - 成功
- 400 - 无法添加权限,请查看响应体了解详情
- 401 - 未经授权
- 403 - 访问被拒绝
添加或撤销团队对数据源的访问权限
POST /api/access-control/datasources/:uid/teams/:id
设置具有给定 uid
的数据源的团队权限。
要添加权限,将 permission
字段设置为 Query
、Edit
或 Admin
。要移除权限,将 permission
字段设置为空字符串。
所需权限
请参阅简介中的说明。
操作 | 范围 |
---|---|
datasources.permissions:write | datasources:* datasources:uid:* datasources:uid:my_datasource (单个数据源) |
示例
请求示例
POST /api/access-control/datasources/my_datasource/teams/1
Accept: application/json
Content-Type: application/json
Authorization: Bearer eyJrIjoiT0tTcG1pUlY2RnVKZTFVaDFsNFZXdE9ZWmNrMkZYbk
{
"permission": "Edit",
}
响应示例
HTTP/1.1 200 OK
Content-Type: application/json; charset=UTF-8
Content-Length: 35
{"message": "Permission updated"}
请求示例
POST /api/access-control/datasources/my_datasource/teams/1
Accept: application/json
Content-Type: application/json
Authorization: Bearer eyJrIjoiT0tTcG1pUlY2RnVKZTFVaDFsNFZXdE9ZWmNrMkZYbk
{
"permission": "",
}
响应示例
HTTP/1.1 200 OK
Content-Type: application/json; charset=UTF-8
Content-Length: 35
{"message": "Permission removed"}
状态码
- 200 - 成功
- 400 - 无法添加权限,请查看响应体了解详情
- 401 - 未经授权
- 403 - 访问被拒绝
添加或撤销基本角色对数据源的访问权限
POST /api/access-control/datasources/:uid/builtInRoles/:builtinRoleName
为具有给定 uid
的数据源设置权限,该权限应用于所有具有指定基本角色的用户。
您可以为以下基本角色设置权限:Admin
、Editor
、Viewer
。
要添加权限,将 permission
字段设置为 Query
、Edit
或 Admin
。要移除权限,将 permission
字段设置为空字符串。
所需权限
请参阅简介中的说明。
操作 | 范围 |
---|---|
datasources.permissions:write | datasources:* datasources:uid:* datasources:uid:my_datasource (单个数据源) |
示例
请求示例
POST /api/access-control/datasources/my_datasource/builtInRoles/Admin
Accept: application/json
Content-Type: application/json
Authorization: Bearer eyJrIjoiT0tTcG1pUlY2RnVKZTFVaDFsNFZXdE9ZWmNrMkZYbk
{
"permission": "Edit",
}
响应示例
HTTP/1.1 200 OK
Content-Type: application/json; charset=UTF-8
Content-Length: 35
{"message": "Permission updated"}
请求示例
POST /api/access-control/datasources/my_datasource/builtInRoles/Viewer
Accept: application/json
Content-Type: application/json
Authorization: Bearer eyJrIjoiT0tTcG1pUlY2RnVKZTFVaDFsNFZXdE9ZWmNrMkZYbk
{
"permission": "",
}
响应示例
HTTP/1.1 200 OK
Content-Type: application/json; charset=UTF-8
Content-Length: 35
{"message": "Permission removed"}
状态码
- 200 - 成功
- 400 - 无法添加权限,请查看响应体了解详情
- 401 - 未经授权
- 403 - 访问被拒绝