如何使用 Terraform 在 Azure Flexible Server 啟用 PostgreSQL 擴充功能 簡介 Azure Database for PostgreSQL Flexible Server 提供了一個靈活的託管資料庫解決方案,可以根據需求調整效能和規模。然而,某些擴充功能(例如 pg_stat_statements 、 pgcrypto 和 pgstattuple )預設未啟用。如果你直接嘗試使用 Terraform 創建這些擴充功能,可能會遇到權限錯誤,顯示 azure_pg_admin 用戶無法啟用這些功能。 好消息是,Microsoft 目前提供了一個 允許清單機制 ,可以手動啟用特定的擴充功能,這讓我們能夠透過 Terraform 或 CLI 來啟用這些功能,避免權限問題。 Azure 的限制與解決方案 在 Azure Database for PostgreSQL Flexible Server 中, azure_pg_admin 角色 不具備完整的 superuser 權限 ,因此某些擴充功能預設為不可用,這導致在 Terraform 配置時可能會出現權限錯誤。 目前,Azure 允許透過 azure.extensions 參數來啟用特定的擴充功能,這解決了開發人員無法自行安裝常見擴充功能的問題。我們可以使用 Terraform 或 Azure CLI 來修改這個設定。 透過 Terraform 啟用 PostgreSQL 擴充功能 要允許這些擴充功能,我們需要在 Terraform 配置 azure.extensions ,以下是具體步驟: 步驟 1:更新 Terraform 配置 在 Terraform 腳本中加入以下設定,允許指定的 PostgreSQL 擴充功能: resource "azurerm_postgresql_flexible_server_configuration" "extensions" { name = "azure.extensions" server_id = azurerm_postgresql_flexible_server.demo.id value = ...