你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
管理数据记录的 ACL
本文介绍如何在 Azure Data Manager for Energy 实例中的数据记录中添加或删除 ACL。
以 ACL 身份创建数据组
在 Azure Cloud Shell 中运行以下 curl 命令,在 Azure Data Manager for Energy 实例的特定数据分区中创建新的数据组,例如 data.sampledb.viewer。
请求格式
curl --location --request POST "https://<adme-url>/api/entitlements/v2/groups/" \
--header 'data-partition-id: <data-partition>' \
--header 'Authorization: Bearer <access_token>'
--data-raw '{
"description": "<data-group-description>",
"name": "data.sampledb.viewer"
}
使用 ACL 创建记录
请求格式
curl --location --request PUT 'https://<adme-url>/api/storage/v2/records/' \
--header 'data-partition-id: opendes' \
--header 'Accept: application/json' \
--header 'Authorization: Bearer <token>’ \
--header 'Content-Type: application/json' \
--data-raw '[
{
"acl": {
"owners": [
"data.default.owners@opendes.contoso.com",
"data.wellbore1.owner@opendes.contoso.com"
],
"viewers": [
"data.default.viewers@opendes.contoso.com"
]
},
"data": {
"FacilityID": "Example External Facility Identifier",
"Source": "Create Record test"
},
"id": "opendes:master-data--Well:999635346360",
"kind": "osdu:wks:master-data--Well:1.0.0",
"legal": {
"legaltags": [
"opendes-Test-Legal-Tag-2311232"
],
"otherRelevantDataCountries": [
"US"
],
"status": "compliant"
},
"meta": [
{}
],
"version": 0
}
]
示例响应
{
"recordCount": 1,
"recordIds": [
"opendes:master-data--Well:999736019023"
],
"skippedRecordIds": [],
"recordIdVersions": [
"opendes:master-data--Well:999736019023:1702017200855277"
]
}
让记录 ID 远离响应,方便将来参考。
使用 ACL 获取创建记录
请求格式
curl --location 'https://<adme-url>/api/storage/v2/records/opendes:master-data--Well:999736019023' \
--header 'data-partition-id: opendes' \
--header 'Authorization: Bearer <token>’
示例响应
{
"data": {
"FacilityID": "Example External Facility Identifier",
"Source": "Create Record test"
},
"meta": [
{}
],
"id": "opendes:master-data--Well:999736019023",
"version": 1702017200855277,
"kind": "osdu:wks:master-data--Well:1.0.0",
"acl": {
"viewers": [
"data.default.viewers@opendes.contoso.com"
],
"owners": [
"data.default.owners@opendes.contoso.com",
"data.wellbore1.owner@opendes.contoso.com"
]
},
"legal": {
"legaltags": [
"opendes-Test-Legal-Tag-2311232"
],
"otherRelevantDataCountries": [
"US"
],
"status": "compliant"
},
"createUser": "preshipping@azureglobal1.onmicrosoft.com",
"createTime": "2023-12-08T06:33:21.338Z"
}
从数据记录中删除 ACL
第一个 /acl/owners/0
操作从 ACL 数组中的第 0 个位置移除 ACL。 使用此操作删除第一个条目时,系统会将其删除。 然后,上一个条目将成为第一个条目。 第二 /acl/owners/0
个操作尝试删除第二个条目。
请求格式
curl --location --request PATCH 'https://<adme-url>/api/storage/v2/records/' \
--header 'data-partition-id: opendes' \
--header 'Accept: application/json' \
--header 'Authorization: Bearer <token>’\
--header 'Content-Type: application/json-patch+json' \
--data '
{
"query": {
"ids": ["opendes:master-data--Well:999736019023"]
},
"ops": [
{
"op": "remove",
"path": "/acl/owners/0"
}
]
}
示例响应
{
"recordCount": 1,
"recordIds": [
"opendes:master-data--Well:999736019023:1702017200855277"
],
"notFoundRecordIds": [],
"failedRecordIds": [],
"errors": []
}
如果从数据记录中删除最后一个所有者 ACL,则会收到错误。
示例响应
{
"recordCount": 0,
"recordIds": [],
"notFoundRecordIds": [],
"failedRecordIds": [
"opendes:master-data--Well: 999736019023"
],
"errors": [
"Patch operation for record: opendes:master-data--Well:999512152273 aborted. Potentially empty value of legaltags or acl/owners or acl/viewers"
]
}
后续步骤
向数据记录添加 ACL 后,可以:
还可以将数据引入 Azure Data Manager for Energy 实例: