I seguenti comandi sono da utilizzare in psql oppure via pgadmin3
su postgres psql
Creiamo l’utente ospite
CREATE ROLE ospite LOGIN PASSWORD 'ospitepassword';
connettiamoci al database mydb
# \c mydb
Consentiamo a ospite la connessione al database mydb
GRANT CONNECT ON DATABASE mydb TO ospite;
Consentiamo a ospite l’accesso alla tabella mytable
GRANT SELECT ON mytable TO ospite;
per revocare il permesso: REVOKE SELECT ON mytable TO ospite;
Per consentire a ospite l’accesso a tutte le tabelle del database in postgresql 8.4 possiamo usare il seguente elenco di comandi.
SELECT 'GRANT SELECT ON ' || relname || ' TO ospite;' FROM pg_class JOIN pg_namespace ON pg_namespace.oid = pg_class.relnamespace WHERE nspname = 'public' AND relkind IN ('r', 'v')
aggiungiamo il ; o \q per lanciare la query quindi possiamo ad esempio fare un taglia/incolla di tutto l’elenco
sul promt e vedremo via via grant applicato a tutte le tabelle .
Consentiamo a ospite l’accesso a tutte le tabelle del database in postgresql 9.0 e successivi
GRANT SELECT ON ALL TABLES IN SCHEMA public TO ospite;
Rimane il problema delle nuove tabelle che si creeranno in postgres 9.0 e successivi e possibile utilizzare
ALTER DEFAULT PRIVILEGES IN SCHEMA public GRANT SELECT ON TABLES TO ospite;
Risorse:
Postgresql
- postgresql check if table exist ;
- How escape single quote ‘ in postgresql ;
- SQL Concatenare due o più campi – String Concatenation ;
- Postgresql cancella record duplicati ;
- postgresql Elencare i campi di una tabella ;
- PostgreSQL CREATE TEMPORARY TABLE ;
- Postgresql Comandi utili ;
- Postgresql reset sequence ;
SQL – PostgreSQL
Creare eliminare database e tabelle