Tho*_*mas 4 database security multi-tenant
我正在设计一个纯多租户数据库(一个数据库,一个模式),我想在我的大多数表中保留一个Tenant_Id作为安全措施,以确保数据不会落入错误的租户手中.看起来这需要每个表上的复合键.
例:
在单租户情况下,我会有一个主键:
Animal_Id (PK)
Animal_Type
Animal_Name
Run Code Online (Sandbox Code Playgroud)
在多租户情况下,我会为Tenant_Id添加另一个主键:
Animal_Id (PK)
Tenant_Id (PK)
Animal_Type
Animal_Name
Run Code Online (Sandbox Code Playgroud)
是否在每个表中添加一个Tenant_Id列意味着我需要在每个表中都有一个复合键,或者有一种安全的方法可以避免这种情况吗?复合键是可以的,但如果可以,我想避免使用它们.
如果所有id都是自动增量整数,则可以添加tenant_id哪个不是主键的一部分,只需在所有查询中检查它.
但是,这有几个副作用,您可能会或可能不会将其视为缺点:
FOREIGN KEY约束不会阻止您这样做(因为它会成为tenant_id其中的一部分PRIMARY KEY)换句话说,如果您真的不喜欢实体的复合键,则可以在没有它们的情况下设计数据库.