我正在尝试使用记录的 API 查询 dremio 以获取用户列表。 德雷米奥版本:
Build
20.2.2-202203241726030461-f7eea3e0
Edition
Enterprise Edition
API: https://docs.dremio.com/software/rest-api/user/list-users/ 示例查询:
curl -X GET --location "http://localhost:9047/api/v3/user" \
-H "Authorization: _dremiohrr395nv31g8k610616tucp91g" \
-H "Content-Type: application/json" \
-H "Accept: application/json"
我不断收到此错误:
{
"errorMessage": "Something went wrong. Please check the log file for details, see https://docs.dremio.com/advanced-administration/log-files.html",
"moreInfo": "HTTP 405 Method Not Allowed"
}
好像根本不支持这个API。
是否有一个已发布的 API 可以列出所有用户,以便我可以获得用户名、uid 和角色成员身份? 我试图避免使用 SQL 查询。
v3 列表用户 API 有错误。
用户apiv2/用户作品
Dremio 没有“列出所有用户”API - 您可以通过多种方式执行此操作:
1 - 使用 SQL API 运行
SELECT * from sys.users
,然后获取结果
2 - 使用
v2
API,这不是您在文档中看到的“官方”客户端 API,更多的是 UI 和其他一些客户端使用的 API,并且可以在没有警告的情况下更改/弃用。 (在您最喜欢的浏览器中使用开发工具时,细心的用户会注意到这些从 UI 发出的调用)
使用
curl
的简单示例
% curl -H 'Content-Type: application/json' -X POST http://127.0.0.1:9047/apiv2/login -d '{
"userName":"mc",
"password":"xxxx"
}' | jq '.token'
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 843 100 766 100 77 5410 543 --:--:-- --:--:-- --:--:-- 5978
"ftrvctk4n634qiqdikbhahdk8d"
获取此令牌,然后像这样附加它
% curl -H 'Content-Type: application/json' -H 'Authorization: _dremioftrvctk4n634qiqdikbhahdk8d' -X GET "http://127.0.0.1:9047/apiv2/users/all/?pretty"
{
"users" : [ {
"resourcePath" : "/user/mc",
"userName" : "mc",
"userConfig" : {
"uid" : {
"id" : "5bb96e81-96dc-47e3-b69e-8dfc255dfd70"
},
"userName" : "mc",
"firstName" : "Mark",
"lastName" : "C",
"email" : "[email protected]",
"groups" : [ ],
"groupInfos" : [ ],
"createdAt" : 1724251526446,
"modifiedAt" : 1724251526441,
"version" : "Mwp3BAv96eQ=",
"type" : "LOCAL",
"active" : true,
"createdBy" : "LOCAL"
},
"links" : {
"self" : "/user/mc"
},
"name" : "mc",
"id" : "5bb96e81-96dc-47e3-b69e-8dfc255dfd70"
} ]
}%