Descrivere i ruoli del server predefiniti di Database di Azure per PostgreSQL

Completato

PostgreSQL gestisce l'accesso al database usando ruoli. Un ruolo può essere un utente o un gruppo di utenti del database. I ruoli possono:

  • Essere proprietari di oggetti di database, ad esempio tabelle o funzioni.
  • Assegnare privilegi per gli oggetti ad altri ruoli.
  • Concedere l'appartenenza a un altro ruolo, consentendo al ruolo membro di averne i privilegi.

Il server di Database di Azure per PostgreSQL viene creato con tre ruoli predefiniti:

  • azure_pg_admin
  • azuresu
  • utente amministratore del server - parte del ruolo di azure_pg_admin

Visualizzare tutti i ruoli del server eseguendo la query seguente:

SELECT * FROM pg_roles;

Nota

Database di Azure per PostgreSQL è un servizio PaaS gestito e solo gli utenti Microsoft hanno il ruolo azuresu (utente con privilegi avanzati).

Quando è stato creato il server, è stato creato anche un utente amministratore del server. Questo utente diventa automaticamente membro del ruolo azure_pg_admin. L'utente amministratore del server di Database di Azure per PostgreSQL ha i privilegi seguenti: LOGIN, NOSUPERUSER, INHERIT, CREATEDB, CREATEROLE, REPLICATION

Ora, l'account utente amministratore del server creato al momento della creazione del server può:

  • Creare altri utenti e concedere agli utenti il ruolo azure_pg_admin.
  • Creare utenti e ruoli con privilegi meno elevati che possono accedere a singoli database e schemi.

PostgreSQL include alcuni ruoli predefiniti che possono essere assegnati agli utenti. Questi includono privilegi solitamente necessari per l'accesso:

  • pg_read_all_settings
  • pg_signal_backend
  • pg_read_server_files
  • pg_write_server_files
  • pg_execute_server_program

Esistono anche ruoli più specializzati:

  • pg_monitor
  • pg_read_all_stats
  • pg_stat_scan_tables
  • Replica

Creare utenti amministratore in Database di Azure per PostgreSQL

  1. In Azure Data Studio (o nello strumento client preferito) connettersi al server di Database di Azure per PostgreSQL con le credenziali di accesso amministratore.
  2. Modificare il codice SQL seguente sostituendo i segnaposto con il nome utente e la password:
CREATE ROLE <new_user> WITH LOGIN NOSUPERUSER INHERIT CREATEDB CREATEROLE NOREPLICATION PASSWORD '<StrongPassword!>';
GRANT azure_pg_admin TO <new_user>;