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

Come creare un utente con PSQL

Connettiti alla tua istanza del server PostgreSQL usando il seguente comando:

sudo -u postgres psql

Seleziona il database che desideri connettere a Chartio:

\c databasename;

Crea un nuovo ruolo per il tuo utente di sola lettura Chartio:

CREATE ROLE chartio_read_only_user LOGIN PASSWORD 'secure_password';

Concedi al nuovo utente i privilegi necessari per connettersi al tuo
database:

GRANT CONNECT ON DATABASE exampledb TO chartio_read_only_user;
GRANT USAGE ON SCHEMA public TO chartio_read_only_user;

Esegui il comando seguente per generare le query che consentiranno a select
l'accesso al tuo nuovo utente:

SELECT 'GRANT SELECT ON '||schemaname||'."'||tablename||'" TO chartio_read_only_user;' FROM pg_tables WHERE schemaname IN ('public') ORDER BY schemaname, tablename;

Verrà visualizzato un elenco di istruzioni GRANT simile al seguente:

Copia le istruzioni GRANT generate dalla query e quindi incollale nella finestra del tuo terminale. Per limitare l'accesso a un sottoinsieme di tabelle, eseguire solo le istruzioni GRANT per le tabelle corrispondenti. Per limitare l'accesso a colonne specifiche, leggi come limitare l'accesso a PostgreSQL utilizzando lo schema.

GRANT SELECT ON public."album" TO chartio_read_only_user;
GRANT SELECT ON public."artist" TO chartio_read_only_user;
GRANT SELECT ON public."customer" TO chartio_read_only_user;
GRANT SELECT ON public."employee" TO chartio_read_only_user;
GRANT SELECT ON public."genre" TO chartio_read_only_user;
GRANT SELECT ON public."invoice" TO chartio_read_only_user;
GRANT SELECT ON public."invoiceline" TO chartio_read_only_user;
GRANT SELECT ON public."mediatype" TO chartio_read_only_user;
GRANT SELECT ON public."playlist" TO chartio_read_only_user;
GRANT SELECT ON public."playlisttrack" TO chartio_read_only_user;
GRANT SELECT ON public."track" TO chartio_read_only_user;

Il tuo nuovo utente di sola lettura ora dispone delle autorizzazioni necessarie affinché Chartio si connetta al tuo database.