共用方式為


多租使用者和 適用於 PostgreSQL 的 Azure 資料庫

Azure 上的許多多租用戶解決方案會使用開放原始碼關係資料庫管理系統 適用於 PostgreSQL 的 Azure 資料庫。 在本文中,我們會檢閱使用多租用戶系統時很有用的 適用於 PostgreSQL 的 Azure 資料庫 功能。 本文也會連結至如何在多租使用者方案中使用 適用於 PostgreSQL 的 Azure 資料庫 的指引和範例。

部署模式

有兩種部署模式可供 適用於 PostgreSQL 的 Azure 資料庫 搭配多租使用者應用程式使用:

  • 適用於 PostgreSQL 的 Azure 資料庫 - 彈性伺服器 - 對於大部分不需要適用於 PostgreSQL 的 Azure Cosmos DB 所提供的高延展性部署而言,這是不錯的選擇。
  • 適用於 PostgreSQL 的 Azure Cosmos DB - 專為需要高階規模的解決方案而設計的 Azure 受控資料庫服務,通常包含多租用戶應用程式。 此服務是 Azure Cosmos DB 產品系列的一部分。

注意

適用於 PostgreSQL 的 Azure 資料庫 - 單一伺服器處於淘汰路徑,並排定於 2025 年 3 月 28 日淘汰。 不建議用於新的多租使用者工作負載。

支援多租使用者的 適用於 PostgreSQL 的 Azure 資料庫 功能

當您使用 適用於 PostgreSQL 的 Azure 資料庫 建置多租使用者應用程式時,有許多功能可用來增強解決方案。

注意

某些功能僅適用於特定 部署模式。 下列指引會指出這些功能。

資料列層級安全性

當您使用共用數據表時,數據列層級安全性對於強制執行租用戶層級隔離很有用。 在 PostgreSQL 中,數據列層級安全性是藉由將數據列安全策略套用至數據表,以限制租使用者對數據列的存取。

在數據表上實作數據列層級安全性時,可能會有輕微的效能影響。 因此,可能需要在已啟用數據列層級安全性的數據表上建立其他索引,以確保效能不會受到影響。 建議您使用效能測試技術,在啟用數據列層級安全性時,驗證工作負載是否符合基準效能需求。

其他資訊:

使用分區化進行水平調整

分區 化模式 可讓您跨多個資料庫或資料庫伺服器調整工作負載。

需要非常高規模的解決方案可以使用適用於PostgreSQL的 Azure Cosmos DB。 此部署模式可跨多部伺服器(節點)水準分區化租使用者。 藉由在多租用戶資料庫中使用 分散式數據表 ,您可以確保租使用者的所有數據都儲存在相同的節點上,這會增加查詢效能。

注意

從 2022 年 10 月起,適用於 PostgreSQL 的 Azure 資料庫 超大規模資料庫 (Citus) 已重新命名為適用於 PostgreSQL 的 Azure Cosmos DB,並移至 Cosmos DB 產品系列。

其他資訊:

連線共用

Postgres 會針對連線使用以進程為基礎的模型。 此模型讓維護大量閑置連線的效率不佳。 某些多租用戶架構需要大量的使用中聯機,這會對 Postgres 伺服器的效能造成負面影響。

預設會在 適用於 PostgreSQL 的 Azure 資料庫 - 彈性伺服器安裝透過 PgBouncer 的連線共用。

其他資訊:

Microsoft Entra 驗證

適用於 PostgreSQL 的 Azure 資料庫 - 彈性伺服器支援使用 Microsoft Entra ID 來驗證連線。 這項功能可讓多租用戶環境中的應用程式工作負載使用租使用者特定的服務主體或受控識別向資料庫進行驗證,這表示數據庫存取的範圍可以限定為個別租使用者。 藉由結合Microsoft Entra ID 驗證與租使用者特定的 數據列安全策略,您可以降低應用程式從多租用戶資料庫中存取另一個租用戶數據的風險。 其他資訊:

參與者

本文由 Microsoft 維護。 原始投稿人如下。

主要作者:

其他投稿人:

若要查看非公開的 LinkedIn 設定檔,請登入 LinkedIn。

下一步

檢閱 多租用戶的記憶體和數據方法。