Azure cosmosdb CosmosDB:用于在文档中存储关系和批量更新/删除性能的模式
我正在寻找一种模式来为存储在CosmosDB中的结构化JSON文档构建安全性。文档可以由一组用户组或单个用户访问,每个用户组或用户对每个文档具有特定的角色。角色映射到CRUD权限。在查询文档时,我需要按权限过滤文档,我正在考虑在文档中使用数组来存储权限信息 我关注的问题如下:Azure cosmosdb CosmosDB:用于在文档中存储关系和批量更新/删除性能的模式,azure-cosmosdb,Azure Cosmosdb,我正在寻找一种模式来为存储在CosmosDB中的结构化JSON文档构建安全性。文档可以由一组用户组或单个用户访问,每个用户组或用户对每个文档具有特定的角色。角色映射到CRUD权限。在查询文档时,我需要按权限过滤文档,我正在考虑在文档中使用数组来存储权限信息 我关注的问题如下: 删除权限时的性能。更新数以万计的文档会产生什么影响 跨多个文档删除权限时不支持事务处理。除了自己构建事务,还有哪些模式可以避免丢失删除权限 删除权限时的性能。它的影响是什么 更新数以万计的文档 根据您的描述,您需要经常
- 删除权限时的性能。更新数以万计的文档会产生什么影响
- 跨多个文档删除权限时不支持事务处理。除了自己构建事务,还有哪些模式可以避免丢失删除权限
据我所知,我建议您使用关系数据库。将权限存储在特定表中,并将其用作文档的外键。也许这更适合您。我来自CosmosDB工程团队。没有足够的细节来给出准确的答案,但请随时跟进
我也有关于管理每个文档的权限集的建议,而不是在多个文档上复制相同的权限集,您是否考虑将权限集分组为权限“组”,向实际权限添加另一个间接层?您可以为每个“权限组”维护单独的文档,这些“权限组”包含作为权限一部分的实际用户组和/或用户集。希望这样可以减少对主要文档本身的更新,并且在许多情况下,您可以只更新带有权限组详细信息的文档。
我来自CosmosDB工程团队。没有足够的细节来给出准确的答案,但请随时跟进我也有关于管理每个文档的权限集的建议,而不是在多个文档上复制相同的权限集,您是否考虑将权限集分组为权限“组”,向实际权限添加另一个间接层?您可以为每个“权限组”维护单独的文档,这些“权限组”包含作为权限一部分的实际用户组和/或用户集。希望这能减少您对主文档本身的更新,并且在许多情况下,您可以只更新带有权限组详细信息的文档。
注意:存储过程文档表示它正在实现事务。我没有看到任何类似TransactionScope的定义。这是暗示吗?如果有多个文档,我是否需要遵循这种递归模式?唯一的事务操作是存储过程的操作,它仅限于集合中的单个分区。也就是说:不幸的是,您的问题太宽泛了,要求采用每个文档的权限模式。至于性能:如果您要修改数千个文档,则需要进行基准测试。注意:存储过程文档表示它正在实现事务。我没有看到任何类似TransactionScope的定义。这是暗示吗?如果有多个文档,我是否需要遵循这种递归模式?唯一的事务操作是