關於 PostgreSQL 適用的 AlloyDB 資料庫使用者管理

如要控管 AlloyDB for PostgreSQL 資料庫的存取權,您可以使用內建的 PostgreSQL 驗證機制或 Identity and Access Management (IAM) 驗證機制,建立及管理資料庫使用者、角色和群組。

資料庫使用者管理功能的運作方式

AlloyDB 的角色、使用者和群組概念與 PostgreSQL 相同。如需簡短說明,請參閱下列說明:

  • 角色:頂層指定項目,用於描述叢集中的資料庫使用者和資料庫使用者群組。角色可提供及限制資料庫物件 (例如資料表和函式) 的存取權。

  • 使用者:獲得 LOGIN 屬性的角色。使用者可以驗證並登入 AlloyDB 資料庫叢集。

  • 群組:授予一或多位使用者的角色。群組的用途是控管多位使用者整體擁有的權限。

資料庫驗證的運作方式

如要驗證並登入 AlloyDB 資料庫叢集,有兩種方法:

  • 內建 PostgreSQL 密碼驗證:AlloyDB 會比較提供的憑證與儲存的雜湊密碼,驗證使用者身分。支援的方法包括 md5、scram-sha-256 和 password。
  • IAM 驗證:可讓資料庫使用者透過 IAM 進行驗證。這項功能可強化安全性,並集中控管其他Google Cloud 服務的存取權。

預先定義的角色

PostgreSQL 提供具有各種權限的預先定義角色。除了這些預先定義的角色外,AlloyDB 還提供多個預先定義的使用者和群組角色。

下表列出 AlloyDB 提供的角色和角色權限:

角色名稱 權限
alloydbsuperuser CREATEROLE、CREATEDB和LOGIN。
postgres CREATEROLE、CREATEDB和LOGIN。
alloydbadmin SUPERUSER (包括 CREATEROLE、CREATEDB 和 LOGIN)。
alloydbimportexport 「CREATEROLE」和「CREATEDB」。
alloydbexport LOGIN和 pg_read_all_data 成員。
alloydbagent 「CREATEROLE」和「CREATEDB」。
alloydbmetadata LOGIN。根據預設,這個角色沒有任何其他權限。
alloydbobservability LOGIN,pg_monitor成員。
alloydbreplica REPLICATION。
alloydbiamuser 根據預設,這個角色沒有任何權限。
alloydbiamgroupuser 根據預設,這個角色沒有任何權限。

以下各子節將說明這些角色的用途。

alloydbsuperuser 群組角色

alloydbsuperuser 角色可讓您設定資料庫系統,並執行其他超級使用者工作。這個角色具備下列權限:

  • 建立需要超級使用者權限的擴充功能
  • 建立事件觸發條件
  • 建立複製功能使用者
  • 建立複製發布項目和訂閱項目

AlloyDB 是代管服務,因此您無法將 PostgreSQL superuser 角色授予使用者。不過,只要將 alloydbsuperuser 角色授予任何資料庫使用者,就能賦予他們 AlloyDB 超級使用者權限。

postgres 使用者角色

postgres 使用者角色是 alloydbsuperuser 角色的一部分。建立 AlloyDB 叢集時,您可以為 postgres 使用者指派密碼,以便使用 postgres 使用者登入系統,執行建立資料庫或額外角色等工作。

alloydbadmin 使用者角色

alloydbadmin 角色是預先定義的內部系統角色,可設定資料庫系統、安裝及升級擴充功能,以及執行其他內部超級使用者工作。這個角色由 AlloyDB 服務管理,無法用於登入,也無法手動授予資料庫帳戶。

alloydbimportexport 使用者角色

建立 AlloyDB 叢集時,AlloyDB 會建立 alloydbimportexport 使用者,並授予匯入和匯出作業所需的最低權限。

您可以選擇建立自己的使用者來執行這些作業。如未建立自訂 alloydbimportexport 使用者,系統會使用預設 alloydbimportexport 使用者執行匯入和匯出作業。

alloydbimportexport 使用者是系統使用者。也就是說,您無法直接使用 alloydbimportexport 使用者登入 PostgreSQL 資料庫,或在資料庫中執行其他作業。

alloydbexport 使用者角色

alloydbexport 角色是內部 AlloyDB 系統角色,具有內部匯出作業使用的 pg_read_all_data 權限。這個角色由 AlloyDB 服務管理,無法手動授予資料庫帳戶。

alloydbagent 使用者角色

alloydbagent 角色是 AlloyDB 內部系統角色。AlloyDB 服務會管理這個角色,您無法手動將其授予資料庫帳戶。這項管理作業有助於確保資料庫及其功能正常運作。

alloydbmetadata 使用者角色

alloydbmetadata 角色是內部 AlloyDB 系統角色,具備管理內部中繼資料表的最低權限。這個角色由 AlloyDB 服務管理,無法手動授予資料庫帳戶。

alloydbobservability使用者角色

alloydbobservability 角色是 AlloyDB 內部系統角色,具有 pg_monitor 權限,可用於收集資料庫遙測、查詢洞察和觀測能力指標。這個角色由 AlloyDB 服務管理,無法手動授予資料庫帳戶。

alloydbreplica 使用者角色

alloydbreplica 角色是 AlloyDB 內部系統角色。AlloyDB 服務會管理這個角色,您無法手動將其授予資料庫帳戶。這項管理作業有助於確保資料庫及其功能正常運作。

alloydbiamuser 群組角色

alloydbiamuser 群組中的資料庫使用者會使用 IAM 向 AlloyDB 執行個體驗證,而非使用內建的 PostgreSQL 密碼驗證。

AlloyDB 不允許您使用 GRANT PostgreSQL 指令或類似方法,將 alloydbiamuser 角色授予使用者。您可以改用 AlloyDB 管理工具,建立及管理以 IAM 為基礎的資料庫使用者。詳情請參閱「管理 IAM 驗證」。

alloydbiamgroupuser 群組角色

資料庫群組和使用 IAM 群組驗證的成員帳戶,都屬於 alloydbiamgroupuser 群組角色。當您將 IAM 群組新增至叢集時,AlloyDB 服務會自動管理這個角色,您無法使用 GRANT PostgreSQL 指令手動授予這個角色。如要進一步瞭解如何將資料庫權限授予 IAM 使用者,請參閱「管理 IAM 驗證」。

後續步驟