描述內建適用於 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 資料庫中建立管理使用者
- 在 Azure Data Studio (或您慣用的用戶端工具) 中,使用系統管理員登入認證連線到您的適用於 PostgreSQL 的 Azure 資料庫伺服器。
- 藉由使用您的使用者名稱與密碼來取代預留位置,以編輯下列 SQL 程式碼:
CREATE ROLE <new_user> WITH LOGIN NOSUPERUSER INHERIT CREATEDB CREATEROLE NOREPLICATION PASSWORD '<StrongPassword!>';
GRANT azure_pg_admin TO <new_user>;