GRANT
अलग-अलग वस्तुओं पर s अलग हैं। 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
से ing pg_class
नहीं कर सकते सहभागिता इसके साथ किसी भी तरह से सीधे। वे , हालांकि, यह सिर्फ "सूची" हिस्सा है जो कि समान नहीं है। "
CREATE EXTENSION
। यह कमोबेश यही समस्या लिनक्स पर बनी फाइलों के साथ हैsu
।sudo -e
Pqsl में कथनों के लिए एक प्रकार है तो अच्छा होगा ।