के रूप में काम नहीं कर रहा है मैं RedHat पर PostgreSQL 9.0.3 का उपयोग कर रहा हूं। डेटाबेस में दो स्कीमा, public
और wh
शामिल हैं। मैंने django
नामक एक नई भूमिका बनाई। मैं चाहता हूं कि यह उपयोगकर्ता wh
स्कीमा का उपयोग डिफ़ॉल्ट रूप से करें।PostgreSQL search_path विज्ञापन विज्ञापित
मैनुअल के बाद, मैंने किया था:
ALTER USER django SET SEARCH_PATH TO wh, public;
यह प्रतीत होता है काम करने के लिए:
SHOW SEARCH_PATH;
search_path
-------------
wh, public
हालांकि, अगर मैं तो एक \dt
, केवल सार्वजनिक स्कीमा से टेबल प्रदर्शित होते हैं। मैनुअल में, खोज पथ को बदलने का तत्काल प्रभाव होना चाहिए, और मुझे उपसर्ग के बिना wh
टेबल तक पहुंचने में सक्षम होना चाहिए, लेकिन ऐसा नहीं है। लॉग इन और आउट search_path
में परिवर्तनों को संरक्षित करता है लेकिन व्यवहार में कोई बदलाव नहीं दिखाता है।
मुझे क्या याद आ रही है?
हाय इरविन, यह काम किया! यह मेरे लिए बहुत अजीब है कि इस भूमिका के लिए सुपरसुर देने से यह पूरा नहीं हुआ। हालांकि, स्कीमा पर स्पष्ट अनुदान व्यवहार को सही बनाता है। योगदान देने वाले सभी के लिए बहुत बहुत धन्यवाद और धन्यवाद। – talonsensei
स्कीमा योग्यता के बिना किसी तालिका को पूछताछ करते समय जैसे कि 'मेरा चयन करें' से चुनें, पीजी कहेंगे 'रिलेशनशिप "मायटेबल" अस्तित्व में नहीं है ", जो थोड़ा भ्रामक है क्योंकि आप जानते हैं कि यह अस्तित्व में है, लेकिन शायद आपके पास नहीं है पहुंच। इसलिए जब आप तालिका को उचित रूप से योग्य स्कीमा नाम के साथ पूछते हैं जैसे 'myschema.mytable से SELECT id'; आपको इसके बजाय संदेश प्राप्त होगा: 'अनुमति स्कीमा के लिए अस्वीकार कर दी गई है ..' जो स्पष्ट रूप से 'स्कीमा पर अनुदान उपयोग को इंगित करता है .. 'कथन की जरूरत है। प्रश्नों में पूरी तरह से योग्य स्कीमा नामों का उपयोग करने का यह एक और कारण है कि एक अच्छा विचार है। –
अरे एरविन, समाधान के लिए धन्यवाद, आपने मुझे बचा लिया है! :-) और प्रश्न पूछने के लिए talonsensei के लिए धन्यवाद :-) – shahjapan