【发布时间】:2011-07-20 13:44:48
【问题描述】:
我正在为纯多租户(一个数据库,一个架构)设计一个数据库,我想在我的大多数表中保留一个 Tenant_Id 作为一种安全措施,以确保数据不会出错租客的手。似乎这需要在每个表上都有一个复合键。
例子:
在单租户情况下,我会有一个主键:
Animal_Id (PK)
Animal_Type
Animal_Name
在多租户情况下,我会为Tenant_Id添加另一个主键:
Animal_Id (PK)
Tenant_Id (PK)
Animal_Type
Animal_Name
向每个表添加一个 Tenant_Id 列是否意味着我需要在每个表中都有一个复合键,或者有没有一种安全的方法可以避免这种情况?复合键没问题,但如果可以的话,我想避免使用它们。
【问题讨论】:
-
您说,“我想在我的大多数表中保留一个 Tenant_Id 作为一种安全措施,以确保数据不会落入错误的租户手中。”您如何期望一个tenant_id 列来防止数据落入错误的租户手中?
-
@Catcall:通过过滤
tenant_id? -
@Quassnoi:仅当您在数据库的整个生命周期中每个单元都没有超过一个租户时才有效。赔率不好。
-
@Catcall:多租户数据库的目标是每个单元有一个租户。
标签: database security multi-tenant