- Creazione di un nuovo utente
- Visualizzazione delle autorizzazioni utente esistenti
- Modifica delle autorizzazioni utente esistenti
- Assegnazione di
SUPERUSER
Autorizzazione - Revocare le autorizzazioni
- Assegnazione di
La modifica delle autorizzazioni utente all'interno di PostgreSQL può variare da piuttosto semplice a estremamente complessa, a seconda della granularità permissiva effettivamente richiesta. Nella maggior parte dei casi, tuttavia, è il potente ALTER USER
comando che dovrebbe essere utilizzato per fare qualsiasi cosa, dal consentire agli utenti di accedere, creare database, gestire ruoli e persino diventare un SUPERUSER
conto.
Esploreremo brevemente la potenza di ALTER USER
comando in modo da poter eseguire facilmente una serie di assegnazioni e rimozioni di autorizzazioni in caso di necessità.
Creazione di un nuovo utente
Prima di iniziare a alterare autorizzazioni utente, dovremmo stabilire un nuovo account utente (comunemente denominato ROLE
) con cui scherzare.
Per iniziare, elencheremo tutti gli utenti esistenti:
=# SELECT usename FROM pg_user;
usename
----------
postgres
(1 row)
Per impostazione predefinita, postgres
è in genere l'unico utente esistente, quindi vogliamo creare un nuovo utente di librarian
per controllare la nostra library
Banca dati. Questo può essere ottenuto usando il CREATE USER
comando:
=# CREATE USER librarian;
CREATE ROLE
=# SELECT usename FROM pg_user;
usename
-----------
postgres
librarian
(2 rows)
Visualizzazione delle autorizzazioni utente esistenti
Spesso può essere utile esaminare le autorizzazioni esistenti assegnate agli utenti nel sistema. Questo può essere facilmente ottenuto con \du
comando da psql
richiesta:
=# \du
List of roles
Role name | Attributes | Member of
-----------+------------------------------------------------+-----------
librarian | | {}
postgres | Superuser, Create role, Create DB, Replication | {}
Possiamo vederlo chiaramente anche se ora abbiamo aggiunto un nuovo librarian
utente, dobbiamo assegnargli dei permessi.
Modifica delle autorizzazioni utente esistenti
Ora che il nostro librarian
utente esiste, possiamo iniziare a usare ALTER USER
per modificare i permessi concessi a librarian
.
Il formato base di ALTER USER
include il nome dell'utente (o ROLE
) seguito da una serie di options
per informare PostgreSQL sulle modifiche permissive da apportare:
=# ALTER USER role_specification WITH OPTION1 OPTION2 OPTION3;
Queste opzioni vanno da CREATEDB
, CREATEROLE
, CREATE USER
e persino SUPERUSER
. Inoltre, la maggior parte delle opzioni ha anche una controparte negativa, che informa il sistema che desideri negare all'utente quella particolare autorizzazione. Questi nomi di opzioni sono gli stessi della loro controparte di assegnazione, ma sono preceduti da NO
(es. NOCREATEDB
, NOCREATEROLE
, NOSUPERUSER
).
Assegnazione di SUPERUSER
Autorizzazione
Ora che comprendiamo le basi della creazione di utenti e dell'utilizzo di ALTER USER
per modificare i permessi, possiamo semplicemente usare il SUPERUSER
opzione per assegnare il nostro librarian
utente SUPERUSER
permesso:
=# ALTER USER librarian WITH SUPERUSER;
ALTER ROLE
Abbastanza sicuro, se mostriamo ora il nostro elenco di autorizzazioni, vedremo librarian
ha il nuovo SUPERUSER
permesso che vogliamo:
=# \du
List of roles
Role name | Attributes | Member of
-----------+------------------------------------------------+-----------
librarian | Superuser | {}
postgres | Superuser, Create role, Create DB, Replication | {}
Revocare le autorizzazioni
Nel caso in cui commettiamo un errore e assegniamo un'autorizzazione che in seguito desideriamo revocare, è sufficiente emettere lo stesso ALTER USER
comando ma aggiungi il NO
prefisso davanti alle opzioni permissive da revocare.
Ad esempio, possiamo rimuovere SUPERUSER
dal nostro librarian
utente così:
=# ALTER USER librarian WITH NOSUPERUSER;
ALTER ROLE
=# \du
List of roles
Role name | Attributes | Member of
-----------+------------------------------------------------+-----------
librarian | | {}
postgres | Superuser, Create role, Create DB, Replication | {}