你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

Azure Cosmos DB for MongoDB 中基于角色的访问控制

Azure Cosmos DB for MongoDB 公开了一个内置的基于角色的访问控制系统,它允许你使用精细的基于角色的权限模型授权数据请求。 用户和角色驻留在数据库中,并使用 Azure CLI、Azure PowerShell 或 Azure 资源管理器(ARM)进行管理。

核心概念

在 Azure Cosmos DB for MongoDB 中使用基于角色的访问控制之前,需要了解一组核心概念。

Resource

资源是我们向其应用访问控制规则的集合或数据库。

特权

特权是可以对特定资源执行的作。 例如,“读取对集合 xyz 的访问权限”。特权分配给特定角色。

角色

角色具有一个或多个特权。 将角色分配给用户(零个或多个),使他们能够执行这些特权中定义的作。 角色存储在单个数据库中。

诊断日志审核

另一个名为 userId “列” MongoRequests 显示在 Azure 门户的诊断功能的表中。 此列显示哪个用户执行了每个数据计划作。 如果未启用基于角色的访问控制,则此列中的值保持为空。

特权

此列表包括可用于 Azure Cosmos DB for MongoDB 中角色的所有特权。

  • 查询和写入
    • find
    • insert
    • remove
    • update
  • 更改流
    • changeStream
  • 数据库管理
    • createCollection
    • createIndex
    • dropCollection
    • killCursors
    • killAnyCursor
  • 服务器管理
    • dropDatabase
    • dropIndex
    • reIndex
  • 诊断
    • collStats
    • dbStats
    • listDatabases
    • listCollections
    • listIndexes

内置角色

这些角色已存在于每个数据库上,无需创建。

read readWrite dbAdmin dbOwner
changeStream ✅ 是 ✅ 是 ✅ 是 ✅ 是
collStats ✅ 是 ✅ 是 ✅ 是 ✅ 是
listCollections ✅ 是 ✅ 是 ✅ 是 ✅ 是
listIndexes ✅ 是 ✅ 是 ✅ 是 ✅ 是
createCollection ✖️ 不 ✅ 是 ✅ 是 ✅ 是
createIndex ✖️ 不 ✅ 是 ✅ 是 ✅ 是
dropCollection ✖️ 不 ✅ 是 ✅ 是 ✅ 是
dbStats ✖️ 不 ✖️ 不 ✅ 是 ✅ 是
dropDatabase ✖️ 不 ✖️ 不 ✅ 是 ✅ 是
reIndex ✖️ 不 ✖️ 不 ✅ 是 ✅ 是
find ✅ 是 ✅ 是 ✖️ 不 ✅ 是
killCursors ✅ 是 ✅ 是 ✖️ 不 ✅ 是
dropIndex ✖️ 不 ✅ 是 ✅ 是 ✅ 是
insert ✖️ 不 ✅ 是 ✖️ 不 ✅ 是
remove ✖️ 不 ✅ 是 ✖️ 不 ✅ 是
update ✖️ 不 ✅ 是 ✖️ 不 ✅ 是