Dette problem har intet at gøre med databasen postgres
. I stedet vil du manipulere kataloget af den aktuelle database. Hver database har et katalog med information om alle objekter i skemaet pg_catalog
, og i standardkompatibel form i skemaet information_schema
, så du bør begrænse adgangen til dem for den pågældende rolle og også for public
rolle, fordi hver rolle også er medlem af denne rolle:
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;
Systemet overholder dog ikke altid denne grænseoverskridende begrænsning, katalogerne er der af en grund og giver vigtige funktioner i databasen. Særligt funktioner kan stadig udføres.
Generelt ønsker du ikke at rode med katalogerne, medmindre du virkelig ved, hvad du laver .