Descrivere i ruoli del server predefiniti di Database di Azure per PostgreSQL
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
- In Azure Data Studio (o nello strumento client preferito) connettersi al server di Database di Azure per PostgreSQL con le credenziali di accesso amministratore.
- 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>;