Azure Cosmos DB for NoSQL 数据平面安全参考

Azure Cosmos DB for NoSQL 在其本机基于角色的访问控制实现中公开一组唯一的数据作和角色。 本文包含这些作和角色的列表,其中介绍了为每个资源授予哪些权限。

警告

Azure Cosmos DB for NoSQL 的本机基于角色的访问控制不支持 notDataActions 属性。 自动排除未指定为允许 dataAction 的任何作。

内置操作

下面是可在角色定义中单独设置的数据操作的列表。

DESCRIPTION
Microsoft.DocumentDB/databaseAccounts/readMetadata 从用于数据平面操作的帐户中读取所需元数据
Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/items/create 创建新项
Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/items/read 通过使用分区键和唯一标识符执行点读取,读取特定项
Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/items/replace 替换现有项
Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/items/upsert 如果不存在或替换现有项,则创建新项
Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/items/delete 删除项
Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/executeQuery 执行 NoSQL 查询
Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/readChangeFeed 从容器的更改源读取
Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/executeStoredProcedure 执行存储过程
Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/manageConflicts 使用冲突源管理帐户的冲突

备注

若要使用软件开发工具包 (SDK) 执行 NoSQL 查询,必须同时具有 Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/executeQueryMicrosoft.DocumentDB/databaseAccounts/sqlDatabases/containers/readChangeFeed 权限。

数据操作通配符

容器和项级别均支持通配符。

DESCRIPTION
Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/* 执行所有特定于容器的操作,例如执行查询、读取更改源、管理冲突和执行存储过程
Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/items/* 执行所有特定于项的操作,例如创建、读取、更新、替换和删除项

内置角色

Azure Cosmos DB for NoSQL 会定义特定于数据平面的角色定义。 这些角色不同于 Azure 基于角色的访问控制角色定义。

Cosmos DB 内置数据读取者

ID00000000-0000-0000-0000-000000000001

  • 包含的操作
    • Microsoft.DocumentDB/databaseAccounts/readMetadata
    • Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/items/read
    • Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/executeQuery
    • Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/readChangeFeed

Cosmos DB 内置数据参与者

ID00000000-0000-0000-0000-000000000002

  • 包含的操作
    • Microsoft.DocumentDB/databaseAccounts/readMetadata
    • Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/*
    • Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/items/*

必需元数据

Azure Cosmos DB 软件开发工具包 (SDK) 会在初始化期间发出只读元数据请求,并为特定的数据请求提供服务。 这些请求会提取各种配置详细信息,例如:

  • 帐户的多区域配置,其中包括帐户可用的 Azure 区域
  • 容器或其索引策略的分区键
  • 构成容器及其地址的物理分区列表
  • 它们不会提取在帐户中存储的任何数据

为了确保最大程度地提高权限模型的透明度,这些元数据请求由 Microsoft.DocumentDB/databaseAccounts/readMetadata 数据操作显式覆盖。 在任何通过某个 Azure Cosmos DB SDK 访问 Azure Cosmos DB 帐户的情况下,都必须允许此操作。

在 Azure Cosmos DB 帐户层次结构的任何级别(包括帐户、数据库或容器)都可以分配该操作。 允许的实际元数据请求取决于范围:

  • 帐户
    • 列出帐户下的数据库
    • 对于帐户下的每个数据库,数据库作用域允许的操作
  • 数据库
    • 读取数据库元数据
    • 列出数据库下的容器
    • 对于数据库下的每个容器,容器作用域允许的操作
  • 容器
    • 读取容器元数据
    • 列出容器下的物理分区
    • 解析每个物理分区的地址

重要

无法使用数据作管理吞吐量 Microsoft.DocumentDB/databaseAccounts/readMetadata