PostgreSQL
 sql >> डेटाबेस >  >> RDS >> PostgreSQL

विशिष्ट भूमिका के लिए सभी वस्तु विशेषाधिकार प्राप्त करना

बॉक्स से बाहर ऐसा कोई दृश्य नहीं है, लेकिन इसे बनाने के लिए आवश्यक डेटा सिस्टम कैटलॉग में है:

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 में लिख सकते हैं।)

आपके अतिरिक्त प्रश्नों के संबंध में, मुझे डर है कि उनका उत्तर दुनिया में केवल कुछ मुट्ठी भर लोगों द्वारा ही दिया जा सकता है, उर्फ ​​​​कोर देव स्वयं। वे यहां की तुलना में अधिक बार पीजी हैकर्स सूची में घूमते हैं।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. PG::InvalidParameterValue:ERROR:पैरामीटर client_min_messages के लिए अमान्य मान:पैनिक

  2. लिनक्स पर एक्सएफएस की वापसी

  3. पोस्टग्रेज JSON डेटा प्रकार रेल क्वेरी

  4. पोस्टग्रेएसक्यूएल किसी दिए गए आईडी के लिए सबसे हाल की प्रविष्टि का चयन

  5. पोस्टग्रेएसक्यूएल का बैकअप लेने के लिए बर्मन का उपयोग करना - एक सिंहावलोकन