इस समस्या का डेटाबेस से कोई लेना-देना नहीं है postgres
. इसके बजाय, आप कैटलॉग में हेरफेर करना चाहते हैं वर्तमान डेटाबेस का। प्रत्येक डेटाबेस में स्कीमा pg_catalog
. में सभी वस्तुओं की जानकारी का एक कैटलॉग होता है , और स्कीमा information_schema
. में मानकों के अनुरूप रूप में , इसलिए आपको विचाराधीन भूमिका के लिए और public
. के लिए भी उन तक पहुंच को प्रतिबंधित करना चाहिए भूमिका क्योंकि प्रत्येक भूमिका भी उस भूमिका का सदस्य है:
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;
हालांकि, सिस्टम हमेशा इस सीमा-पार प्रतिबंध का सम्मान नहीं करता है, कैटलॉग एक कारण के लिए हैं और डेटाबेस में महत्वपूर्ण कार्य प्रदान करते हैं। विशेष रूप से कार्य अभी भी निष्पादित हो सकते हैं।
सामान्य तौर पर, आप कैटलॉग के साथ खिलवाड़ नहीं करना चाहते जब तक कि आप वास्तव में नहीं जानते कि आप क्या कर रहे हैं ।