Compartir a través de

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