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

已完成

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>;