描述 Azure 內建的 PostgreSQL 資料庫伺服器角色

已完成

PostgreSQL 會使用角色來管理數據庫存取。 角色可以是資料庫用戶或使用者群組。 角色可以:

  • 擁有資料庫物件,例如數據表或函式。
  • 將這些物件的許可權指派給其他角色。
  • 將會員資格授予另一個角色,讓該角色擁有成員角色的許可權。

您的適用於 PostgreSQL 的 Azure 資料庫伺服器是使用三個預設角色建立的:

  • azure_pg_admin
  • azuresu
  • 您的伺服器管理員使用者 - azure_pg_admin角色的一部分

執行下列查詢來檢視所有伺服器角色:

SELECT * FROM pg_roles;

注意

適用於 PostgreSQL 的 Azure 資料庫是受管理的 PaaS 服務,只有 Microsoft 使用者具有 azuresu(進階使用者)角色。

當您建立伺服器時,也會建立一名伺服器管理員帳戶。 此用戶會自動成為 azure_pg_admin 角色的成員。 適用於 PostgreSQL 的 Azure 資料庫伺服器管理員使用者具有下列權限:LOGIN、NOSUPERUSER、INHERIT、CREATEDB、CREATEROLE、REPLICATION。

現在,您在建立伺服器時建立的伺服器管理員用戶帳戶,可以:

  • 建立更多使用者,並將這些使用者授與 azure_pg_admin 角色。
  • 建立具有個別資料庫和架構存取權的較不具特殊許可權使用者和角色。

PostgreSQL 包含一些可指派給用戶的預設角色。 這些包括用於存取的常用權限:

  • pg_read_all_settings
  • pg_signal_backend
  • pg_read_server_files(讀取伺服器檔案)
  • pg_write_server_files
  • pg_execute_server_program

還有更多專家角色:

  • pg_monitor
  • pg_read_all_stats
  • pg_stat_scan_tables
  • 複製

在適用於 PostgreSQL 的 Azure 資料庫中建立系統管理員使用者

  1. 在 Azure Data Studio 中(或您慣用的用戶端工具),使用系統管理員登入認證連線到適用於 PostgreSQL 的 Azure 資料庫伺服器。
  2. 以您的使用者名稱與密碼取代佔位符,以編輯以下 SQL 程式碼:
CREATE ROLE <new_user> WITH LOGIN NOSUPERUSER INHERIT CREATEDB CREATEROLE NOREPLICATION PASSWORD '<StrongPassword!>';
GRANT azure_pg_admin TO <new_user>;