

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 在上为多租户 SaaS 应用程序实施托管 PostgreSQL AWS
<a name="welcome"></a>

*Tabby Ward 和 Thomas Davis，Amazon Web Services ()AWS*

*2024 年 4 月*（[文档历史记录](doc-history.md)）

在选择用于存储运营数据的数据库时，必须考虑如何构造数据、它将回答哪些查询、提供答案的速度以及数据平台本身的弹性。除了这些一般考虑因素外，还包括软件即服务 (SaaS) 对运营数据的影响，例如性能隔离、租户安全以及多租户 SaaS 应用程序数据的典型特征和设计模式。本指南讨论了这些因素如何适用于使用亚马逊网络服务AWS() 上的 PostgreSQL 数据库作为多租户 SaaS 应用程序的主要操作数据存储。具体而言，该指南重点介绍两个 AWS 托管的 PostgreSQL 选项：兼容亚马逊 Aurora PostgreSQL 的版本和适用于 PostgreSQL 的亚马逊关系数据库服务（Amazon RDS）。

## 目标业务成果
<a name="business-outcomes"></a>

本指南详细分析了使用兼容 Aurora PostgreSQL 和亚马逊 RDS for PostgreSQL 的多租户 SaaS 应用程序的最佳实践。我们建议您使用本指南中提供的设计模式和概念，为多租户 SaaS 应用程序提供信息并标准化与 Aurora PostgreSQL 兼容的 Aurora PostgreSQL 或 Amazon RDS for PostgreSQL 的实施。

本规范性指南有助于实现以下业务成果：
+ **为您的用例选择最优的 AWS 托管 PostgreSQL 选项 — 本指南将数据库使用的**关系和非关系选项与 SaaS 应用程序进行了比较。它还讨论了哪些用例最适合兼容 Aurora PostgreSQL 和亚马逊 RDS for PostgreSQL。这些信息将有助于为您的 SaaS 应用程序选择最佳选项。
+ **通过采用 SaaS 分区模型来实施 SaaS 最佳实践** — 本指南讨论并比较了适用于 PostgreSQL 数据库管理系统 (DBMS) 的三种广泛的 SaaS 分区模型：池、桥接和孤岛模型及其变体。这些方法捕获了 SaaS 最佳实践，并在设计 SaaS 应用程序时提供了灵活性。SaaS 分区模型的实施是保留最佳实践的关键部分。
+ **在池 SaaS 分区模型中有效使用 RL** S — 行级安全 (RLS) 通过根据用户或上下文变量限制可以查看的行，支持在单个 PostgreSQL 表中强制执行租户数据隔离。使用池分区模型时，需要使用 RLS 来防止跨租户访问。