共用方式為


使用 適用於 PostgreSQL 的 Azure 資料庫 進行 Microsoft Entra 驗證 - 彈性伺服器

適用範圍:適用於 PostgreSQL 的 Azure 資料庫 - 彈性伺服器

Microsoft Entra 驗證是使用 Microsoft Entra 識別碼中定義的身分識別連線到 適用於 PostgreSQL 的 Azure 資料庫 彈性伺服器的機制。 透過 Microsoft Entra 驗證,您可以在集中的位置管理資料庫使用者的身分識別和其他 Microsoft 服務,從而簡化權限管理。

使用 Microsoft Entra ID 的優點包括:

  • 以統一的方式驗證跨 Azure 服務的使用者。
  • 在單一位置管理密碼原則和密碼輪替。
  • 支持多種形式的驗證,這可以消除儲存密碼的需求。
  • 客戶能夠使用外部 (Microsoft Entra ID) 群組來管理資料庫許可權。
  • 使用 PostgreSQL 資料庫角色在資料庫層級驗證身分識別。
  • 支援連線到 適用於 PostgreSQL 的 Azure 資料庫 彈性伺服器之應用程式的令牌型驗證。

部署選項之間的 Microsoft Entra ID 功能和功能比較

適用於 PostgreSQL 的 Azure 資料庫 彈性伺服器的 Microsoft Entra 驗證結合了從 適用於 PostgreSQL 的 Azure 資料庫 單一伺服器收集的體驗和意見反應。

下表列出 適用於 PostgreSQL 的 Azure 資料庫 單一伺服器與 適用於 PostgreSQL 的 Azure 資料庫 彈性伺服器之間 Microsoft Entra ID 特性與功能的高階比較。

功能/功能 適用於 PostgreSQL 的 Azure 資料庫單一伺服器 適用於 PostgreSQL 的 Azure 資料庫彈性伺服器
多個 Microsoft Entra 系統管理員 No Yes
受控識別(系統指派和使用者指派) Partial 完整
受邀的用戶支援 No Yes
能夠關閉密碼驗證 無法使用 可提供服務
服務主體作為群組成員的能力 No Yes
Microsoft Entra 登入的稽核 No Yes
PgBouncer 支援 No Yes

Microsoft Entra ID 如何在 適用於 PostgreSQL 的 Azure 資料庫 彈性伺服器中運作

下列高階圖表摘要說明當您搭配 適用於 PostgreSQL 的 Azure 資料庫 彈性伺服器使用 Microsoft Entra 驗證時,驗證的運作方式。 箭頭表示通訊路徑。

驗證流程

如需使用 適用於 PostgreSQL 的 Azure 資料庫 彈性伺服器設定 Microsoft Entra ID 的步驟,請參閱設定及登入 microsoft Entra ID for 適用於 PostgreSQL 的 Azure 資料庫 - 彈性伺服器

PostgreSQL 系統管理員與 Microsoft Entra 系統管理員之間的差異

當您開啟彈性伺服器的 Microsoft Entra 驗證,並將 Microsoft Entra 主體新增為 Microsoft Entra 系統管理員時,帳戶:

  • 取得與原始 PostgreSQL 系統管理員相同的許可權。
  • 可以管理伺服器上的其他 Microsoft Entra 角色。

PostgreSQL 系統管理員只能建立本機密碼型使用者。 但 Microsoft Entra 系統管理員有權管理 Microsoft Entra 使用者和本機密碼型使用者。

Microsoft Entra 系統管理員可以是 Microsoft Entra 使用者、Microsoft Entra 群組、服務主體或受控識別。 以系統管理員身分使用群組帳戶可增強管理性。 它允許在 Microsoft Entra ID 中集中新增和移除群組成員,而不需要變更 適用於 PostgreSQL 的 Azure 資料庫 彈性伺服器實例內的使用者或許可權。

您可以同時設定多個 Microsoft Entra 系統管理員。 您可以選擇停用 適用於 PostgreSQL 的 Azure 資料庫 彈性伺服器實例的密碼驗證,以增強稽核和合規性需求。

系統管理員結構

注意

服務主體或受控識別可以在 適用於 PostgreSQL 的 Azure 資料庫 彈性伺服器中作為完全運作的 Microsoft Entra 系統管理員。 這是單一伺服器 適用於 PostgreSQL 的 Azure 資料庫的限制。

您透過 Azure 入口網站、API 或 SQL 建立的 Microsoft Entra 系統管理員擁有與您在伺服器布建期間建立的一般系統管理員使用者相同的許可權。 非系統管理員 Microsoft Entra 角色的資料庫許可權管理方式與一般角色類似。

透過 Microsoft Entra 身分識別進行 連線

Microsoft Entra 驗證支援使用 Microsoft Entra 身分識別連線到資料庫的下列方法:

  • Microsoft Entra 密碼驗證
  • Microsoft Entra 整合式驗證
  • 具有多重要素驗證的 Microsoft Entra 通用
  • Active Directory 應用程式憑證或客戶端密碼
  • 受控識別

針對 Active Directory 進行驗證之後,您會擷取令牌。 此令牌是您用來登入的密碼。

若要使用 適用於 PostgreSQL 的 Azure 資料庫 彈性伺服器設定 Microsoft Entra ID,請遵循設定及登入 microsoft Entra ID for 適用於 PostgreSQL 的 Azure 資料庫 - 彈性伺服器中的步驟。

其他考量

  • 如果您想要讓 Microsoft Entra 主體在任何部署程式中假設使用者資料庫的擁有權,請在部署 (Terraform 或 Azure Resource Manager) 模組中新增明確的相依性,以確保在您建立任何用戶資料庫之前開啟 Microsoft Entra 驗證。

  • 您可以隨時將多個 Microsoft Entra 主體(使用者、群組、服務主體或受控識別)設定為 適用於 PostgreSQL 的 Azure 資料庫 彈性伺服器實例的 Microsoft Entra 系統管理員。

  • 只有 PostgreSQL 的 Microsoft Entra 系統管理員一開始可以使用 Microsoft Entra 帳戶連線到 適用於 PostgreSQL 的 Azure 資料庫 彈性伺服器實例。 Active Directory 系統管理員可以設定後續的 Microsoft Entra 資料庫使用者。

  • 如果 Microsoft Entra 主體從 Microsoft Entra ID 中刪除,它會維持為 PostgreSQL 角色,但無法再取得新的存取令牌。 在此情況下,雖然比對角色仍然存在於資料庫中,但無法向伺服器進行驗證。 資料庫管理員必須手動轉移擁有權並卸除角色。

    注意

    已刪除的 Microsoft Entra 使用者仍然可以登入,直到令牌到期(從令牌發行最多 60 分鐘為止)。 如果您也從 適用於 PostgreSQL 的 Azure 資料庫 彈性伺服器中移除使用者,則會立即撤銷此存取權。

  • 適用於 PostgreSQL 的 Azure 資料庫 彈性伺服器會使用使用者的唯一 Microsoft Entra 使用者識別碼,而不是使用用戶名稱,比對資料庫角色的存取令牌。 如果已刪除 Microsoft Entra 使用者,且新使用者以相同名稱建立,適用於 PostgreSQL 的 Azure 資料庫 彈性伺服器會認為是不同的使用者。 因此,如果使用者從 Microsoft Entra ID 中刪除,且新增具有相同名稱的新使用者,則新用戶無法與現有的角色連線。

常見問題集

  • 適用於 PostgreSQL 的 Azure 資料庫 彈性伺服器中有哪些可用的驗證模式?

    適用於 PostgreSQL 的 Azure 資料庫 彈性伺服器支援三種驗證模式:僅限 PostgreSQL 驗證、僅限 Microsoft Entra 驗證,以及 PostgreSQL 和 Microsoft Entra 驗證。

  • 我可以在彈性伺服器上設定多個 Microsoft Entra 系統管理員嗎?

    是。 您可以在彈性伺服器上設定多個 Microsoft Entra 系統管理員。 在布建期間,您只能設定單一 Microsoft Entra 系統管理員。 但是,建立伺服器之後,您可以移至 [驗證 ] 窗格,視需要設定盡可能多的 Microsoft Entra 系統管理員。

  • Microsoft Entra 系統管理員是否只是 Microsoft Entra 使用者?

    否。 Microsoft Entra 系統管理員可以是使用者、群組、服務主體或受控識別。

  • Microsoft Entra 系統管理員是否可以建立本機密碼型使用者?

    Microsoft Entra 系統管理員有權管理 Microsoft Entra 使用者和本機密碼型使用者。

  • 當我在彈性伺服器上啟用 Microsoft Entra 驗證時,會發生什麼事?

    當您在伺服器層級設定 Microsoft Entra 驗證時,會啟用 PGAadAuth 擴充功能,並重新啟動伺服器。

  • 如何? 使用 Microsoft Entra 驗證登入?

    您可以使用 psql 或 pg 管理員 等用戶端工具來登入您的彈性伺服器。 使用您的 Microsoft Entra 使用者識別碼作為使用者名稱和您的 Microsoft Entra 令牌作為密碼。

  • 如何? 產生令牌嗎?

    您可以使用 來產生令牌 az login。 如需詳細資訊,請參閱 擷取 Microsoft Entra 存取令牌

  • 群組登入與個別登入有何差異?

    以 Microsoft Entra 群組成員身分登入和以個別 Microsoft Entra 使用者身分登入的唯一差異在於用戶名稱。 以個別使用者身分登入需要個別的 Microsoft Entra 用戶識別碼。 以群組成員身分登入需要組名。 在這兩種情況下,您會使用與密碼相同的個別 Microsoft Entra 令牌。

  • 令牌存留期為何?

    使用者令牌最多1小時有效。 系統指派受控識別的令牌最多 24 小時有效。

下一步