बॉक्स से बाहर ऐसा कोई दृश्य नहीं है, लेकिन इसे बनाने के लिए आवश्यक डेटा सिस्टम कैटलॉग में है:
http://www.postgresql.org/docs/current/static/catalogs.html
उदाहरण के लिए, एक relacl
है pg_class
. में फ़ील्ड :
select oid::regclass, relacl from pg_class;
अन्य कैटलॉग में समान फ़ील्ड हैं, अर्थात् typacl
pg_type
. में और proacl
pg_proc
. में ।
आप संभवतः दो और कैटलॉग का उपयोग करना चाहेंगे, अर्थात् pg_authid
यह जानने के लिए कि किन भूमिकाओं में सुपरयुसर विशेषाधिकार हैं, और pg_auth_members
यह जानने के लिए कि किसकी क्या भूमिका है।
(pg_default_acl
केवल वस्तु निर्माण के दौरान उपयोग किया जाता है, इसलिए यह उपयोगी नहीं है।)
एक्लाइटम से संबंधित कुछ आंतरिक कार्य हैं जो दृश्य बनाने में काम आ सकते हैं। आप उन्हें psql
. में सूचीबद्ध कर सकते हैं इस तरह:
\df+ *acl*
विशेष रूप से aclexplode()
. उम्मीद है कि निम्नलिखित उदाहरण आपको आरंभ करने के लिए पर्याप्त होंगे:
select oid::regclass,
(aclexplode(relacl)).grantor,
(aclexplode(relacl)).grantee,
(aclexplode(relacl)).privilege_type,
(aclexplode(relacl)).is_grantable
from pg_class
where relacl is not null;
इसे पहले acl पंक्तियों का विस्तार करके अनुकूलित किया जा सकता है, उदा.:
select oid::regclass,
aclitem.grantee
from (select oid, aclexplode(relacl) as aclitem from pg_class) sub
यह आपको सीधे वांछित परिणाम तक ले जाएगा।
जहाँ तक मुझे पता है, यह उतना ही अच्छा है जितना कि यह बिल्ट-इन टूल्स का उपयोग करके प्राप्त करेगा। (स्वाभाविक रूप से, यदि आप इसे और अधिक अनुकूलित करने का प्रयास करना चाहते हैं, तो आप अपने स्वयं के ऑपरेटरों का सेट C में लिख सकते हैं।)
आपके अतिरिक्त प्रश्नों के संबंध में, मुझे डर है कि उनका उत्तर दुनिया में केवल कुछ मुट्ठी भर लोगों द्वारा ही दिया जा सकता है, उर्फ कोर देव स्वयं। वे यहां की तुलना में अधिक बार पीजी हैकर्स सूची में घूमते हैं।