1

我的 Dynamo 表在我的多租户应用程序中将tenant_id 作为分区键,但我的分区键中除了tenant_id 之外还有其他类型的实体。

例如:(这是一个小例子,我们始终使用这种模式)

PK                                        SK                               Att
Customer-4312a674-54a                  user-abc                            672453782
user-abc                                   user-abc                            672453782

我想 dynamodb:LeadingKeys 用来确保一个租户的数据永远不会被另一个租户访问。在这种情况下,当PK过载并且其中还有其他实体时,我该如何处理。

4

1 回答 1

3

在多租户系统中,我的建议是将租户 ID 作为前缀添加到属于租户的所有项目的分区键。这样您就可以使用dynamodb:LeadingKeys条件进行访问控制。

无论如何,每个查询的租户 ID 都应该在查询时知道,我的猜测是它可能存储在会话信息中。这意味着您可以将租户 ID 添加到每个 Key 并仍然进行分区键重载。

于 2020-12-28T10:41:29.367 回答