PostgreSQL
 sql >> Database >  >> RDS >> PostgreSQL

Qual è la differenza tra un utente e un ruolo?

Le versioni precedenti di Postgres, e alcuni altri sistemi DB, hanno concetti separati di "gruppi" (a cui viene concesso l'accesso agli oggetti del database) e "utenti" (che possono accedere e sono membri di uno o più gruppi).

Nelle versioni moderne di Postgres, i due concetti sono stati fusi:un "ruolo" può avere la capacità di accedere, la capacità di "ereditare" da altri ruoli (come un utente che è membro di un gruppo o un gruppo che è un membro di un altro gruppo) e l'accesso agli oggetti del database.

Per comodità, molti strumenti e manuali fanno riferimento a qualsiasi utente con autorizzazione di accesso come "utente" o "ruolo di accesso" e qualsiasi utente senza come "gruppo" o "ruolo di gruppo", poiché è pratica utile e comune mantenere approssimativamente quella struttura. Questa è interamente una convenzione terminologica e per comprendere i permessi, devi solo comprendere le opzioni disponibili quando creazione di ruoli e concedere loro l'accesso .

Sempre per comodità, Postgres accetta ancora comandi che utilizzano la vecchia terminologia, come CREATE USER e CREATE GROUP che sono entrambi alias per CREATE ROLE . Se scrivi CREATE USER , il LOGIN l'autorizzazione verrà aggiunta al nuovo ruolo per impostazione predefinita, per emulare il vecchio comportamento quando era un comando separato.