Popis předdefinovaných rolí serveru Azure Database for PostgreSQL
PostgreSQL spravuje přístup k databázi pomocí rolí. Role může být uživatel databáze nebo skupina uživatelů. Role mohou:
- Vlastní databázové objekty, jako jsou tabulky nebo funkce.
- Přiřaďte oprávnění k těmto objektům jiným rolím.
- Udělte členství jiné roli, což umožní této členské roli získat její oprávnění.
Váš server Azure Database for PostgreSQL se vytvoří se třemi výchozími rolemi:
- azure_pg_admin
- azuresu
- uživatel správce serveru – součást role azure_pg_admin
Zobrazte všechny role serveru spuštěním následujícího dotazu:
SELECT * FROM pg_roles;
Poznámka
Azure Database for PostgreSQL je spravovaná služba PaaS a role Azuresu (superuživatel) mají jenom uživatelé Microsoftu.
Když jste vytvořili server, vytvořil se také uživatel správce serveru. Tento uživatel se automaticky stal členem role azure_pg_admin. Uživatel s administrátorským oprávněním serveru Azure Database for PostgreSQL má následující oprávnění: LOGIN, NOSUPERUSER, INHERIT, CREATEDB, CREATEROLE, REPLICATION
Uživatelský účet správce serveru, který jste vytvořili při vytváření serveru, teď může:
- Vytvořte více uživatelů a udělte těmto uživatelům azure_pg_admin roli.
- Vytvořte méně privilegované uživatele a role, které mají přístup k jednotlivým databázím a schématům.
PostgreSQL obsahuje některé výchozí role, které je možné přiřadit uživatelům. Patří mezi ně běžně potřebná oprávnění pro přístup:
- pg_read_all_settings
- pg_signal_backend
- číst soubory serveru (pg_read_server_files)
- pg_write_server_files
- pg_execute_server_program
Existují také další specializované role:
- pg_monitor
- pg_read_all_stats
- pg_stat_scan_tables
- replikace
Vytváření uživatelů správců ve službě Azure Database for PostgreSQL
- V Nástroji Azure Data Studio (nebo preferovaném klientském nástroji) se připojte k serveru Azure Database for PostgreSQL pomocí přihlašovacích údajů správce.
- Upravte následující kód SQL nahrazením zástupných symbolů uživatelským jménem a heslem:
CREATE ROLE <new_user> WITH LOGIN NOSUPERUSER INHERIT CREATEDB CREATEROLE NOREPLICATION PASSWORD '<StrongPassword!>';
GRANT azure_pg_admin TO <new_user>;