Dit probleem heeft niets te maken met database postgres
. In plaats daarvan wil je de catalogus . manipuleren van de huidige database. Elke database heeft een catalogus met informatie over alle objecten in schema pg_catalog
, en in standaardconforme vorm in schema information_schema
, dus je moet de toegang beperken tot die voor de rol in kwestie en ook voor de public
rol omdat elke rol ook lid is van die rol:
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;
Het systeem houdt zich echter niet altijd aan deze algemene beperking, de catalogi zijn er met een reden en bieden belangrijke functies in de database. Met name functies kunnen nog steeds worden uitgevoerd.
Over het algemeen wil je niet met catalogi spelen tenzij je echt weet wat je doet .