3

我在 Azure 中有一个 CosmosDB,我想让用户访问以读取各种集合中的数据。

我尝试赋予他们“读者”角色,让他们确定存在 CosmosDB,并且他们可以看到一些元数据。但他们无法访问内部的数据

我为他们分配了“Cosmos DB 帐户阅读器”,结果更好。

但在我看来,“读者”角色应该取代“Cosmos DB 帐户读者”角色。还是我在这里走错了路?我相信“读者”角色赋予了*所有读取权限。

编辑:在portal.azure.com
上使用内置的“数据资源管理器”似乎没有问题。

真正的问题是使用cosmos.azure.com和使用 ActiveDirectory 登录 inn,并没有让用户看到任何具有“Cosmos DB 帐户阅读器”角色的内容。可能需要用户具有写访问权限。

4

1 回答 1

3

为了从 Cosmos DB 帐户读取数据,用户应具有允许获取访问密钥的角色。Reader角色没有此能力。但是 Cosmos DB Account Reader,角色有能力获取read-only access keys该角色中的用户可以读取数据(但不对该数据进行任何更改)的使用。

由此link,这里是Cosmos DB Account Reader角色的定义:

{
  "assignableScopes": [
    "/"
  ],
  "description": "Can read Azure Cosmos DB Accounts data",
  "id": "/subscriptions/{subscriptionId}/providers/Microsoft.Authorization/roleDefinitions/fbdf93bf-df7d-467e-a4d2-9458aa1360c8",
  "name": "fbdf93bf-df7d-467e-a4d2-9458aa1360c8",
  "permissions": [
    {
      "actions": [
        "Microsoft.Authorization/*/read",
        "Microsoft.DocumentDB/*/read",
        "Microsoft.DocumentDB/databaseAccounts/readonlykeys/action",
        "Microsoft.Insights/MetricDefinitions/read",
        "Microsoft.Insights/Metrics/read",
        "Microsoft.Resources/subscriptions/resourceGroups/read",
        "Microsoft.Support/*"
      ],
      "notActions": [],
      "dataActions": [],
      "notDataActions": []
    }
  ],
  "roleName": "Cosmos DB Account Reader Role",
  "roleType": "BuiltInRole",
  "type": "Microsoft.Authorization/roleDefinitions"
}

Microsoft.DocumentDB/databaseAccounts/readonlykeys/actionaction 可以获取只读访问密钥,从而读取数据。

于 2020-07-03T09:34:35.650 回答