共用方式為


在 適用於 PostgreSQL 的 Azure 資料庫 中管理 PostgreSQL 擴充功能 - 彈性伺服器

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

適用於 PostgreSQL 的 Azure 資料庫 彈性伺服器可讓您使用擴充功能擴充資料庫的功能。 延伸模組會將多個相關 SQL 物件統合在同一個套件之中,而且只要一個命令,就能載入或從資料庫移除。 載入資料庫之後,延伸模組就可如內建功能般運作。

允許擴充功能

在 適用於 PostgreSQL 的 Azure 資料庫 彈性伺服器中安裝擴充功能之前,您必須允許列出這些擴充功能以供使用。

使用 Azure 入口網站

  1. 選取適用於 PostgreSQL 的 Azure 資料庫 - 彈性伺服器執行個體。

  2. 從資源功能表的 [設定] 區段下,選取 [伺服器參數]

  3. 從參數中 azure.extensions 可用的擴充功能中,選取您想要允許清單的延伸模組,然後選取 [ 儲存]。

    allowlist 的螢幕快照。

載入程式庫

shared_preload_libraries 是伺服器設定參數,可判斷適用於 PostgreSQL 的 Azure 資料庫彈性伺服器啟動時要載入的程式庫。 任何使用共用記憶體的程式庫都必須透過此參數載入。 如果您的延伸模組需要新增至共享預先載入連結庫,請遵循下列步驟:

使用 Azure 入口網站

  1. 選取適用於 PostgreSQL 的 Azure 資料庫 - 彈性伺服器執行個體。

  2. 從資源功能表的 [設定] 區段下,選取 [伺服器參數]

  3. 在的值 shared_preload_libraries中包含您想要新增的連結庫,然後選取 [ 儲存]。

    設定shared_preload_libraries時[伺服器參數] 頁面的螢幕快照。

  4. 因為 shared_preload_libraries是靜態伺服器參數,所以需要重新啟動伺服器,變更才會生效。

    [伺服器參數] 頁面的螢幕快照,其中顯示您可以儲存變更並重新啟動的對話框。

建立延伸模組

在允許列出擴充功能之後,如果擴充功能需要,也會新增至 shared_load_libraries,即可在要使用的每個資料庫中建立或安裝它。

  1. 若要建立擴充功能,用戶必須是角色的成員 azure_pg_admin

  2. 執行 CREATE EXTENSION 命令來建立或安裝特定擴充功能。 此命令會將封裝的物件載入您的資料庫。

注意

適用於 PostgreSQL 的 Azure 資料庫 彈性伺服器中提供的第三方延伸模組是開放原始碼授權程序代碼。 我們不會提供任何具有進階或專屬授權模型的第三方延伸模組或擴充功能版本。

適用於 PostgreSQL 的 Azure 資料庫 彈性伺服器實例支援主要 PostgreSQL 延伸模組的子集,如依名稱或 PostgreSQL 版本支援的擴充功能所列。 此資訊也可以藉由執行 SHOW azure.extensions; 來取得。 適用於 PostgreSQL 的 Azure 資料庫 彈性伺服器不支援這些清單中未包含的延伸模組。 您無法在 適用於 PostgreSQL 的 Azure 資料庫 彈性伺服器中建立或載入自己的擴充功能。

卸除延伸模組

若要卸除延伸模組,請先確定允許 將其列出

  1. 若要卸除擴充功能,用戶必須是角色的成員 azure_pg_admin

  2. 執行DROP EXTENSION 命令以卸除或卸載特定擴充功能。 此命令會從您的資料庫卸載封裝在延伸模組中的物件。

更新延伸模組

若要將已安裝的延伸模組更新為 Azure 所支援的最新可用版本,請使用下列 SQL 命令:

ALTER EXTENSION <extension_name> UPDATE;

此命令可讓使用者手動升級至 Azure 核准的最新版本,以增強相容性和安全性,藉此簡化資料庫延伸模組的管理。

限制

雖然更新延伸模組很簡單,但有一些限制:

  • 選取特定版本:命令不支援更新至延伸模組的中繼版本。

  • 降級:不支援將擴充功能降級為舊版。 如果需要降級,可能需要支持協助,並視舊版的可用性而定。

檢視已安裝的延伸模組

若要列出目前安裝在資料庫上的延伸模組,請使用下列 SQL 命令:

SELECT * FROM pg_extension;

可能的錯誤

適用於 PostgreSQL 的 Azure 資料庫 中的 “azure_pg_admin”用戶不允許列出擴充功能 “%s”

當您執行 CREATE EXTENSION 參考不允許清單之擴充功能的 或 DROP EXTENSION 命令,或執行命令之彈性伺服器實例上尚未支持的擴充功能時,就會發生此錯誤。

只允許使用 CREATE EXTENSION 的 「azure_pg_admin」 成員

當執行 CREATE EXTENSION 命令的使用者不是角色的成員 azure_pg_admin 時,就會發生此錯誤。

只允許使用DROP EXTENSION 的 「azure_pg_admin」 成員

當執行 DROP EXTENSION 命令的使用者不是角色的成員 azure_pg_admin 時,就會發生此錯誤。