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

स्कीमा पर उपयोग अनुदान वास्तव में क्या करता है?

GRANT अलग-अलग वस्तुओं पर अलग-अलग हैं। GRANT डेटाबेस पर आईएनजी GRANTनहीं करता है स्कीमा के भीतर अधिकार। इसी तरह, GRANT एक स्कीमा पर आईएनजी टेबल पर अधिकार प्रदान नहीं करता है।

अगर आपके पास SELECT . के अधिकार हैं एक तालिका से, लेकिन इसे उस स्कीमा में देखने का अधिकार नहीं है जिसमें यह शामिल है तो आप तालिका तक नहीं पहुंच सकते हैं।

अधिकार परीक्षण क्रम में किए जाते हैं:

Do you have `USAGE` on the schema? 
    No:  Reject access. 
    Yes: Do you also have the appropriate rights on the table? 
        No:  Reject access. 
        Yes: Check column privileges.

आपका भ्रम इस तथ्य से उत्पन्न हो सकता है कि public स्कीमा में एक डिफ़ॉल्ट GRANT है भूमिका के सभी अधिकारों का public , जिसका प्रत्येक उपयोगकर्ता/समूह सदस्य है। तो सभी के पास पहले से ही उस स्कीमा का उपयोग है।

मुहावरा:

<ब्लॉकक्वॉट>

(यह मानते हुए कि वस्तुओं की अपनी विशेषाधिकार आवश्यकताएं भी पूरी होती हैं)

कह रहा है कि आपके पास USAGE होना चाहिए इसके भीतर वस्तुओं का उपयोग करने के लिए एक स्कीमा पर, लेकिन USAGE एक स्कीमा पर स्कीमा के भीतर वस्तुओं का उपयोग करने के लिए पर्याप्त नहीं है, आपके पास वस्तुओं पर भी अधिकार होना चाहिए।

यह एक डायरेक्टरी ट्री की तरह है। यदि आप एक निर्देशिका बनाते हैं somedir फ़ाइल के साथ somefile इसके भीतर फिर इसे सेट करें ताकि केवल आपका अपना उपयोगकर्ता निर्देशिका या फ़ाइल तक पहुंच सके (मोड rwx------ डीआईआर पर, मोड rw------- फ़ाइल पर) तो कोई और यह देखने के लिए निर्देशिका को सूचीबद्ध नहीं कर सकता कि फ़ाइल मौजूद है।

यदि आप फ़ाइल पर विश्व-पढ़ने के अधिकार प्रदान करते हैं (मोड rw-r--r-- ) लेकिन निर्देशिका अनुमतियों को न बदलें इससे कोई फर्क नहीं पड़ेगा। कोई भी देख नहीं देख सका फ़ाइल को पढ़ने के लिए, क्योंकि उनके पास निर्देशिका को सूचीबद्ध करने का अधिकार नहीं है।

यदि आप इसके बजाय rwx-r-xr-x . सेट करते हैं निर्देशिका पर, इसे सेट करना ताकि लोग निर्देशिका को सूचीबद्ध और पार कर सकें लेकिन फ़ाइल अनुमतियों को नहीं बदल रहे हैं, लोग सूची कर सकते हैं फ़ाइल लेकिन पढ़ नहीं कर सका ऐसा इसलिए क्योंकि उनके पास फ़ाइल तक पहुंच नहीं होगी।

आपको दोनों को सेट करना होगा लोगों को वास्तव में फ़ाइल देखने में सक्षम होने की अनुमति।

पीजी में एक ही बात। आपको दोनों स्कीमा USAGE की आवश्यकता है किसी ऑब्जेक्ट पर कार्रवाई करने के अधिकार और ऑब्जेक्ट अधिकार, जैसे SELECT एक टेबल से।

(सादृश्य थोड़ा नीचे गिर जाता है कि PostgreSQL में अभी तक पंक्ति-स्तरीय सुरक्षा नहीं है, इसलिए उपयोगकर्ता अभी भी "देख" सकता है कि तालिका SELECT द्वारा स्कीमा में मौजूद है pg_class . से आईएनजी सीधे। वे इसके साथ किसी भी तरह से बातचीत नहीं कर सकते हैं, हालांकि, यह केवल "सूची" भाग है जो बिल्कुल समान नहीं है।)



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. IF-THEN-ELSE कथन postgresql में

  2. हेरोकू और रेल:पोस्टग्रेज के साथ जेम लोड त्रुटि, हालांकि यह GEMFILE में निर्दिष्ट है

  3. PostgreSQL त्रुटि:घातक:भूमिका उपयोगकर्ता नाम मौजूद नहीं है

  4. PostgreSQL में sqrt () कैसे काम करता है

  5. PostgreSQL में विभिन्न तालिकाओं से डेटा को संयोजित करने के लिए जॉइन का उपयोग करना