将 SQL DB 划分为地理区域

将 SQL DB 划分为地理区域

由于用户希望将敏感数据存储在自己的地理区域,因此我公司一直在研究按地理区域划分当前的 SQL 数据库。用户数据库数据中只有一部分需要位于某个地理位置。

例如:假设数据库在多个数据库表中保存图书信息。与欧洲用户相关的图书数据应仅存在于欧盟服务器中。数据库中的其他数据不需要以特殊方式分发,例如用户帐户等……只需分发图书数据。

我很想了解一些关于解决这一需求的最佳方法的想法和观点。我最初的想法是建立一个主数据库,指示每本“书”的数据存储在哪个地理位置,然后根据该位置继续查询正确的区域数据库。

答案1

您没有提供很多约束条件,因此我们可能只是在原地踏步,提供不可行的解决方案。但我将为 MS SQL Server 世界建议一种方法...

假设您的公司必须支持 3 个独立的地理区域来存储敏感数据。然后还假设这些区域中的用户需要能够查询所有其他区域中的数据(当然,要遵守访问控制策略)。我假设所有区域中的信息架构都是相同的。

因此,在每个区域中,我将为其他 2 个区域创建一个 SQL Server“链接”服务器。这样,在任何区域中运行的查询都可以访问本地存储的数据以及任何其他区域中的数据。查找信息的查询可以修改为对所有区域进行 UNION,但继续返回相同的架构。这效率不高,因此您可能会想出一些策略来将非敏感数据复制到所有区域,然后重构查询以访问非敏感数据的单个本地副本和仅通过 UNION 访问敏感架构的多个区域。

相关内容