我应该如何在cassandra中实现数据访问/权限管理

krcsximq  于 2021-06-14  发布在  Cassandra
关注(0)|答案(1)|浏览(351)

我正在制作一个saas应用程序,用户将在其中创建广告列表。
所有广告应该是可见的所有用户我的注册用户以及未注册的访问者
只有注册用户才能创建广告
注册用户可以创建多个广告
只有创建广告的用户才能删除或编辑它。
我从来没有做过用户和数据管理w.r.t.数据库,所以我需要关于如何实现它的建议(我承认这是一个悬而未决的问题,但我仍然觉得它是相关的,因为我还可以问其他地方!!)
我的数据库是 cassandra .
我正在考虑对所有广告使用一个键空间来处理第1点
我正在考虑为每个用户创建一个专用的键空间,用于存储他们的广告(第2点、第3点和第4点)。
如果用户编辑/删除广告,则需要更改所有广告的用户特定键空间和全局键空间
问题1-我的方法是创建这样一个应用程序的常用方法吗?如果没有的话,我会很感激关于其他设计的建议。
问题2-当我将创建特定于用户的密钥空间时,我是否能够以编程方式创建密钥空间(使用用户提供的用户名和密码)作为我的web注册过程的一部分?

xpszyzbs

xpszyzbs1#

在cassandra中使用每个用户的键空间不是一个好主意,只有当您有几个用户时,这才有效。单独的键空间意味着您要为每个用户创建一个单独的表,因此这与第1点相矛盾—显示您需要从所有表中读取的所有广告。而且cassandra在支持的表的数量上也有限制——建议的值不能超过集群中的500个表(有关更多详细信息,请参阅此答案)。
我建议将用户id作为分区键的一部分,或者分区键本身—但这将取决于其他因素,例如,用户可以创建多少广告等—这需要一个单独的问题。
我建议在datastax学院学习有关cassandra数据建模的ds220课程,以便更好地了解如何为cassandra建模数据。

相关问题