Cassandra作为基于角色的访问控制系统的数据库
我想知道您对使用Cassandra实现 类似RBAC的身份验证和授权模型。我们简化了程序 一般模型的中心关系 (http://en.wikipedia.org/wiki/Role-based_access_control)致: 用户--n:m--角色--n:m--资源 用户和资源使用外部可见的标识符编制索引。 这些标识符也需要“可重新拥有”(想想:邮件别名) <> P>考虑卡桑德拉的主要原因是可用性、可伸缩性。 和(全球)地理冗余。使用RBDM很难实现这一点 另一方面,RBAC有许多m:n关系。而一些 不一致可能是可以接受的,资源所有权(即角色=所有者) 绝不能把事情搞混 你觉得怎么样?对于Cassandra来说,这种关系模型是一种反模式吗Cassandra作为基于角色的访问控制系统的数据库,cassandra,Cassandra,我想知道您对使用Cassandra实现 类似RBAC的身份验证和授权模型。我们简化了程序 一般模型的中心关系 (http://en.wikipedia.org/wiki/Role-based_access_control)致: 用户--n:m--角色--n:m--资源 用户和资源使用外部可见的标识符编制索引。 这些标识符也需要“可重新拥有”(想想:邮件别名) P>考虑卡桑德拉的主要原因是可用性、可伸缩性。 和(全球)地理冗余。使用RBDM很难实现这一点 另一方面,RBAC有许多m:n关系。而一
用法?你知道基于卡桑德拉的类似解决方案吗?我将继续,把我的评论变成一个答案,这样它们就在一个地方 虽然您有一个庞大的数据集,需要管理100000000个帐户(如果我读得正确的话),但您也有一个限制,即需要强制执行某种级别的一致性,以确保特定关系永远不会失去同步。您还需要执行大量一对多关系(资源-->用户或上面的m:n)。此外,听起来您从数据集中读取的数据要多于向数据集中写入的数据。随后,我认为带有热备份的RDBMS将比定制Cassandra部署更好地解决您的问题。 这背后的原因是:
祝你好运 在评估Cassandra时,在进入RDBMS和NoSQL之前,首先想到两个问题。1) 您将要处理多大的数据集?2) 向其中添加数据的频率和速度如何?例如,您从1TB数据集开始,每天将添加10GB数据。如果您的数据集较小,并且不会增长太多,我认为RDBMS将为m:n关系提供更强大的功能,而无需做额外的工作。如果您没有大量的写入操作,我会倾向于使用带有热备份的RDBMS来实现安全性。原因是,您可以使用索引来加速RDBMS中的读取,并且您将能够处理m:n关系,而无需编写大量列族代码来处理所有这些关系。您还将确保没有不一致的情况——我认为在实现安全体系结构时,您可能需要这样做。大约100.000.000个帐户。虽然写负载不重,但很多readsI都有一个重要的要求:全局地理冗余。Cassandra支持开箱即用,使用RDBMS的多主机也会出现诸如丢失更新或混合更新之类的问题。没错,但是使用Cassandra仍然会丢失数据。如果部分仲裁写入失败,则整个写入失败。使用RDBMS,即使更新失败,您仍然至少在一个位置拥有数据。请参阅PG wiki,了解有关集群postgres的更多详细信息,作为扩展RDBMS的一个示例:@FloppyDisk当您在Cassandra中的写入一致性级别无法满足要求时(即,如果您请求的是节点仲裁,您没有收到响应),客户端会收到一个异常,让他们知道发生了什么。对于Cassandra,写操作可以是幂等的,因此您可以安全地重试写操作,直到成功为止,而无需担心会覆盖新的更改。不涉及数据丢失。