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

Revocare l'accesso al database postgres per un ruolo

Questo problema non ha nulla a che fare con il database postgres . Invece, vuoi manipolare il catalogo della banca dati attuale. Ogni database ha un catalogo di informazioni su tutti gli oggetti nello schema pg_catalog e in forma conforme agli standard nello schema information_schema , quindi dovresti limitare l'accesso a quelli per il ruolo in questione e anche al public ruolo perché ogni ruolo è anche membro di quel ruolo:

REVOKE ALL PRIVILEGES ON SCHEMA pg_catalog FROM newrole;
REVOKE ALL PRIVILEGES ON SCHEMA pg_catalog FROM public;
REVOKE ALL PRIVILEGES ON SCHEMA information_schema FROM newrole;
REVOKE ALL PRIVILEGES ON SCHEMA information_schema FROM public;

Tuttavia, il sistema non rispetta sempre questa restrizione generalizzata, i cataloghi esistono per un motivo e forniscono importanti funzioni nel database. In particolare le funzioni possono ancora essere eseguite.

In generale, non vuoi giocherellare con i cataloghi a meno che non sai davvero cosa stai facendo .