我有一个由许多组织共享的数据库(一个多tennant方案)。
我希望确保授权用户只能查看单个组织的数据,而不需要每次都显式编码这样的约束。
LightSpeed有没有一个很好的方法来做到这一点呢?
发布于 2012-04-23 10:04:46
一种可能的解决方案是对每个租户具有单独的表,即以某种租户标识符为前缀的表。
例如,如果您有一个customer表,您可以在它前面加上租户名称
Client1_Customer
Client2_CustomerLightspeed有一个名为DefaultNamingStrategy的内置命名策略,它可以被您自己的INamingStrategy实现所取代。您所需要做的就是实现GetTableName,这样您就可以识别当前租户并选择相应的表名。
发布于 2012-04-24 06:52:24
我在LightSpeed中发现了一个很棒的特性,叫做QueryFilterAttributes。我可以创建一个组织查询过滤器属性,它可以将组织ID注入到查询中,就像LightSpeed的本地软删除一样。
很圆滑。
https://stackoverflow.com/questions/9507716
复制相似问题