Per testare un server di database di produzione, dovresti creare ruoli aggiuntivi perché lavorare regolarmente nei tuoi database poiché il ruolo di superutente predefinito è rischioso.
Questo articolo mostra come creare ruoli aggiuntivi con PostgreSQL® utilizzando psql
comandi client o comandi shell. Devi usare l'utente Linux®, postgres ®, con entrambi i metodi.
Accedi alla tua istanza con le tue credenziali Linux ed esegui il comando seguente per passare gli utenti a postgres utente:
# sudo su - postgres
Usa i comandi psql
Utilizzare i seguenti passaggi per creare o eliminare utenti utilizzando psql
cliente.
Connettiti con psql
Connettiti al server del database usando thepsqlclient con postgres
ruolo:
postgres@demo:~$ psql -U postgres
...
Welcome to psql 8.3.6, the PostgreSQL interactive terminal.
Type: \copyright for distribution terms
\h for help with SQL commands
\? for help with psql commands
\g or terminate with semicolon to execute query
\q to quit
postgres=#
Crea un ruolo
Dopo esserti connesso a psql
client, eseguire il comando seguente per creare un ruolo con LOGIN
attributo e una password crittografata con MD5 non vuota:
postgres=#CREATE ROLE demorole1 WITH LOGIN ENCRYPTED PASSWORD 'password1';
Nota :Il punto e virgola finale (; ) alla fine dell'istruzione SQL è obbligatorio. Le virgolette singole ( ' ' ) non fanno parte della password ma devono racchiuderla.
Convalida di aver creato correttamente il ruolo utilizzando il comando seguente:
postgres=# \du
List of roles
Role name | Superuser | Create role | Create DB | Connections | Member of
-----------+-----------+-------------+-----------+-------------+-----------
demorole1 | no | no | no | no limit | {}
postgres | yes | yes | yes | no limit | {}
(2 rows)
Rilascia un ruolo
Quando non hai più bisogno di un ruolo, puoi eliminare (eliminare o rimuovere) un ruolo utilizzando il seguente comando:
postgres=# DROP ROLE demorole1;
Se poi controlli con il \du
comando, puoi vedere quel demorole1
non è più elencato.
Crea un superutente
Occasionalmente, potresti dover creare ruoli di superutente aggiuntivi, ad esempio quando hai un programmatore di database di cui ti fidi per amministrare il postgresser.
Per creare un superutente, esegui il seguente comando:
postgres=#CREATE ROLE mysuperuser2 WITH SUPERUSER CREATEDB CREATEROLE LOGIN ENCRYPTED PASSWORD 'mysuperpass2';
Il comando imposta il LOGIN
attributo e specifica una password non vuota. Questi fattori sono importanti se intendi questo ruolo di superutente per connessioni locali e remote al database.
Esci da psql
Per uscire da psql
, esegui il comando seguente:
postgres=# \q
...
postgres@demo:~$
Usa i comandi della shell
È possibile creare ed eliminare ruoli di database utilizzando i comandi createuseranddropusershell, che sono wrapper per le istruzioni CREATE e DROPSQL. Un'installazione standard di Postgres include questi comandi.
creautente
Esegui il comando seguente per creare un ruolo non superutente con LOGIN
attributo:
postgres@demo:~$ createuser -PE demorole2
Enter password for new role:
Enter it again:
...
postgres@demo:~$
Il -P
flag ti chiede di impostare una password per il nuovo ruolo e il -E
flagindica di memorizzare la password come stringa crittografata con MD5.
Per verificare la creazione del ruolo, connettiti a psql
ed esegui il seguente comando:
postgres=# \du
List of roles
Role name | Superuser | Create role | Create DB | Connections | Member of
-----------+-----------+-------------+-----------+-------------+-----------
demorole2 | no | no | no | no limit | {}
postgres | yes | yes | yes | no limit | {}
(2 rows)
dropuser
Esegui il comando seguente per eliminare un ruolo:
postgres@demo:~$ dropuser -i demorole2
...
Role "demorole2" will be permanently removed.
Are you sure? (y/n) y
...
postgres@demo:~$
Il -i
flag fornisce una richiesta di conferma, che è una buona misura di sicurezza quando si esegue un comando potenzialmente distruttivo.
Crea un superutente
Occasionalmente, potresti dover creare ruoli di superutente aggiuntivi, ad esempio quando hai un programmatore di database di cui ti fidi per amministrare il postgresser.
Per creare un superutente, esegui il seguente comando:
postgres@demo:~$ createuser -sPE mysuperuser