Microsoft Fabric 中的 Cosmos DB 主要依赖于 Microsoft Entra ID 身份验证和内置数据平面角色来管理身份验证和授权。 本指南介绍了如何在 Fabric 数据库中为 Cosmos DB 配置内置的数据平面角色。 可以在 Microsoft Fabric 访问控制中使用工作区角色配置对 Cosmos DB 的访问。
两个不同级别的访问控制协同工作。 例如,若要 连接到 数据库,用户必须至少对 Fabric 数据库项具有 读取 权限。
访问控制
在 Fabric 中,可以使用 Fabric 工作区角色控制访问权限。 Fabric 工作区角色管理谁可以在 Microsoft Fabric 工作区中执行哪些操作。
首先,Fabric 中的 Cosmos DB 具有具有三个定义完善的角色的项级权限:
| 能力 | |
|---|---|
| 阅读 | 连接到数据库、读取项、查询项、读取更改源、列表容器、列表容器、读取吞吐量和读取元数据 |
| ReadAll | 与 读取相同的功能,以及直接从 OneLake 文件读取镜像数据 |
| 写入 | 与 ReadAll 相同的功能,并额外创建容器、删除容器、创建项、删除项、修改项 |
Fabric 中的工作区角色在 Cosmos DB 中转化为以下项级权限:
| 管理员 | 成员 | 贡献者 | 查看器 | |
|---|---|---|---|---|
| 阅读 | ✅ 是 | ✅ 是 | ✅ 是 | ✅ 是 |
| ReadAll | ✅ 是 | ✅ 是 | ✅ 是 | ✅ 是 |
| 写入 | ✅ 是 | ✅ 是 | ✅ 是 | ✖️ 不 |
另一个视角是,此表反映用户在使用 Cosmos DB 数据库时可能需要的常见能力,并将其映射到相应的工作区角色。
| 管理员 | 成员 | 贡献者 | 查看器 | |
|---|---|---|---|---|
| 完全管理访问权限和完全数据访问权限 | ✅ 是 | ✅ 是 | ✅ 是 | ✖️ 不 |
| 读取数据和元数据 | ✅ 是 | ✅ 是 | ✅ 是 | ✅ 是 |
| 连接到数据库 | ✅ 是 | ✅ 是 | ✅ 是 | ✅ 是 |
小窍门
有关角色在工作区中工作方式的详细信息,请参阅 工作区中的角色。 有关分配工作区角色的详细信息,请参阅 授予用户对工作区的访问权限。
映射到 Azure
如果您熟悉使用 Azure Cosmos DB for NoSQL,可以将 Fabric 项权限中的 Cosmos DB 映射到该服务的内置数据平面角色:
Cosmos DB 数据库项权限与以下 Azure Cosmos DB 数据库范围内的数据通道角色分配相当。
| 用于 NoSQL 的 Azure Cosmos DB 角色 | Scope | |
|---|---|---|
| 阅读 | Cosmos DB Built-in Data Reader |
数据库 |
| ReadAll | Cosmos DB Built-in Data Reader |
数据库 |
| 写入 | Cosmos DB Built-in Data Contributor |
数据库 |
或者,如果需要,可以映射到 Azure 基于角色的访问控制权限:
| 用于 NoSQL 的 Azure Cosmos DB 角色 | Scope | |
|---|---|---|
| 阅读 | [ "Microsoft.DocumentDB/databaseAccounts/readMetadata", "Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/items/read", "Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/executeQuery", "Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/readChangeFeed" ] |
数据库 |
| ReadAll | [ "Microsoft.DocumentDB/databaseAccounts/readMetadata", "Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/items/read", "Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/executeQuery", "Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/readChangeFeed" ] |
数据库 |
| 写入 | [ "Microsoft.DocumentDB/databaseAccounts/readMetadata", "Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/*", "Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/items/*" ] |
数据库 |
注释
有关用于 NoSQL 角色的 Azure Cosmos DB 的详细信息,请参阅 Azure Cosmos DB for NoSQL 数据平面安全性。