Crea un nuovo utente di sola lettura in postgres


9

Vorrei creare un nuovo utente in un postgresqldatabase esistente su una macchina Ubuntu. Voglio concedere a questo utente un accesso di sola lettura a tutte le tabelle.

Come lo faccio? Devo creare un nuovo utente anche su Ubuntu?

Grazie,

Udi

Risposte:


20

Riferimento tratto da questo articolo!

Script per creare l'utente di sola lettura:

CREATE ROLE Read_Only_User WITH LOGIN PASSWORD 'Test1234' 
NOSUPERUSER INHERIT NOCREATEDB NOCREATEROLE NOREPLICATION VALID UNTIL 'infinity';

Assegna l'autorizzazione a questo utente di sola lettura:

GRANT CONNECT ON DATABASE YourDatabaseName TO Read_Only_User;
GRANT USAGE ON SCHEMA public TO Read_Only_User;
GRANT SELECT ON ALL TABLES IN SCHEMA public TO Read_Only_User;
GRANT SELECT ON ALL SEQUENCES IN SCHEMA public TO Read_Only_User;

Degno di nota! Una nuova risposta pertinente dopo oltre 6 anni.
Adam Matan,

Ne e 'valsa la pena. Questo è stato il collegamento principale per me quando cercavo "la creazione di un utente di sola lettura in Postgres". L'articolo principale che contiene un esempio pertinente è una vittoria nel mio libro.
Audrius,

3

Non è necessario creare un nuovo utente nel sistema operativo. Emetti solo:

CREA UTENTE newusername

in psql (o pgadmin, o qualsiasi altro strumento tu preferisca) e avrai un nuovo utente. L'accesso di questo utente dipende dall'impostazione delle tabelle. Ma per impostazione predefinita, non avrà autorizzazioni su nessuna tabella, quindi dovrai concederlo. Se disponi già delle autorizzazioni GRANTed per il gruppo pubblico, l'utente avrà tali autorizzazioni dall'inizio.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.