首页 > 解决方案 > 在 Azure CosmosDB 中设置 PermissionModes

问题描述

您好,我正在使用 Azure CosmosDB 开发一个简单的应用程序。现在我想使用资源令牌来提供对数据库中文档和集合的特定访问。在权限模式中有 PermissionMode.Read 和 PermisssionMode.All。所以我假设 PermissionMode.All 允许用户读取、写入、删除和发布。如果我的假设是正确的,我特别不希望我的用户删除或发布到某个集合中。我如何实现这一目标?为了更好地理解,我的数据库包含一个名为 users 的容器,其中包含用户信息以及他们的帖子以及每个帖子的点赞数和内容。现在我允许我的所有用户阅读(查看其他用户的帖子)和写作(给予喜欢或增加喜欢的字段),但我想只允许文档的用户发布和删除文档。

标签: azureazure-functionsazure-cosmosdb

解决方案


分配权限的最佳粒度是分区键值,因此授予每个文档权限的唯一方法是您的文档 ID 也是分区键。如果您的分区键是 userId 并且用户配置文件和帖子等都共享相同的分区键,那么这应该适合您。这是一个为用户创建分区键权限的示例。


推荐阅读