आपने सभी मौजूदा . के लिए विशेषाधिकार सेट करने के लिए शॉर्टहैंड पाया दिए गए स्कीमा में तालिकाएँ। मैनुअल स्पष्ट करता है:
<ब्लॉकक्वॉट>
(लेकिन ध्यान दें कि ALL TABLES
दृश्यों . को शामिल करने के लिए माना जाता है और विदेशी टेबल )।
बोल्ड जोर मेरा। serial
कॉलम nextval()
with के साथ क्रियान्वित किए जाते हैं कॉलम डिफ़ॉल्ट के रूप में अनुक्रम पर और, मैनुअल को उद्धृत करते हुए:
अनुक्रमों के लिए, यह विशेषाधिकार currval
. के उपयोग की अनुमति देता है और nextval
कार्य।
तो अगर serial
हैं कॉलम, आप USAGE
भी देना चाहेंगे (या ALL PRIVILEGES
) अनुक्रमों . पर
GRANT USAGE ON ALL SEQUENCES IN SCHEMA foo TO mygrp;
नोट:पोस्टग्रेज 10 या बाद के संस्करण में पहचान कॉलम ऐसे निहित अनुक्रमों का उपयोग करते हैं जिन्हें अतिरिक्त विशेषाधिकारों की आवश्यकता नहीं होती है। (serial
को अपग्रेड करने पर विचार करें कॉलम।)
नए के बारे में क्या? ऑब्जेक्ट?
आपकी रुचि DEFAULT PRIVILEGES
. में भी होगी उपयोगकर्ताओं या स्कीमा के लिए:
ALTER DEFAULT PRIVILEGES IN SCHEMA foo GRANT ALL PRIVILEGES ON TABLES TO staff;
ALTER DEFAULT PRIVILEGES IN SCHEMA foo GRANT USAGE ON SEQUENCES TO staff;
ALTER DEFAULT PRIVILEGES IN SCHEMA foo REVOKE ...;
यह स्वचालित रूप से भविष्य में बनाई गई वस्तुओं के लिए विशेषाधिकार सेट करता है - लेकिन पहले से मौजूद वस्तुओं के लिए नहीं।
डिफ़ॉल्ट विशेषाधिकार केवल हैं लक्षित उपयोगकर्ता द्वारा बनाई गई वस्तुओं पर लागू (FOR ROLE my_creating_role
) यदि उस खंड को छोड़ दिया जाता है, तो यह वर्तमान उपयोगकर्ता के लिए डिफ़ॉल्ट रूप से ALTER DEFAULT PRIVILEGES
निष्पादित करता है . स्पष्ट होना:
ALTER DEFAULT PRIVILEGES FOR ROLE my_creating_role IN SCHEMA foo GRANT ...;
ALTER DEFAULT PRIVILEGES FOR ROLE my_creating_role IN SCHEMA foo REVOKE ...;
यह भी ध्यान दें कि pgAdmin III के सभी संस्करणों में एक सूक्ष्म बग है और डिस्प्ले SQL फलक में डिफ़ॉल्ट विशेषाधिकार, भले ही वे वर्तमान भूमिका पर लागू न हों। FOR ROLE
. को समायोजित करना सुनिश्चित करें SQL स्क्रिप्ट की प्रतिलिपि बनाते समय मैन्युअल रूप से क्लॉज़ करें।