PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

Widerrufen Sie den Zugriff auf die Postgres-Datenbank für eine Rolle

Dieses Problem hat nichts mit der Datenbank postgres zu tun . Stattdessen möchten Sie den Katalog manipulieren der aktuellen Datenbank. Jede Datenbank hat einen Katalog mit Informationen zu allen Objekten im Schema pg_catalog , und in standardkonformer Form im Schema information_schema , daher sollten Sie den Zugriff auf die für die betreffende Rolle und auch für public beschränken Rolle, weil jede Rolle auch Mitglied dieser Rolle ist:

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;

Allerdings beachtet das System diese pauschale Einschränkung nicht immer, die Kataloge sind ja nicht ohne Grund da und stellen wichtige Funktionen in der Datenbank zur Verfügung. Insbesondere können noch Funktionen ausgeführt werden.

Im Allgemeinen möchten Sie nicht mit den Katalogen herumspielen, es sei denn, Sie wissen wirklich, was Sie tun .