मैं रेल के लिए बहुत नया हूं, इसलिए उम्मीद है कि यह एक बेवकूफ सवाल नहीं है।मैं पोस्टग्रेस्क्ल के साथ रेल में टेबल स्वामित्व कैसे सेट करूं?
मैं दो अलग-अलग उपयोगकर्ता खातों के साथ एक पोस्टग्रेस्क्ल डेटाबेस का उपयोग करने की कोशिश कर रहा हूं। हालांकि मैं उन खातों के बीच स्विच करने में सक्षम होना चाहता हूं, इसलिए उनके पास डेटाबेस पर समान अनुमतियां हैं (उनमें से दोनों आदर्श रूप से पोस्टग्रेस्क्ल सुपरसियर नहीं हैं)।
मैंने पोस्टग्रेज़ में NOLOGIN
भूमिका बनाई, जो डेटाबेस का मालिक है। फिर इस उपयोगकर्ता को दो उपयोगकर्ता खातों को सौंपा गया। बहरहाल, जब भी मैं rake db:migrate
करते हैं, यह उपयोगकर्ता खाता (और नहीं भूमिका) तालिका के मालिक कर देगा। यदि मैं फिर उपयोगकर्ताओं को स्विच करता हूं, तो दूसरे उपयोगकर्ता को पहले उपयोगकर्ता द्वारा बनाई गई तालिकाओं पर सही अनुमति नहीं होगी।
दो खाता होने का कारण जल्दी से स्विच करने के लिए, उदाहरण के लिए सक्षम होने के लिए है जब मुझे बिना डाउनटाइम के पासवर्ड को बदलना होगा।
क्या टेबल बनाने के दौरान मालिक के रूप में विशिष्ट भूमिका का उपयोग करने के लिए रेल को बताने का कोई तरीका है? (या शायद वहाँ एक बेहतर तरीका एक ही PostgreSQL भूमिका में दो खातों के बिना यह पूरा करने के है?)
अद्यतन: अब तक मैं this solution पाया एक बाहरी स्क्रिप्ट के रूप में मैन्युअल रूप से चलाने के लिए और NOLOGIN भूमिका करने के लिए सभी तालिकाओं के स्वामित्व बदलने के लिए, लेकिन मैं कुछ और सुरुचिपूर्ण उम्मीद कर रहा हूं या रेल के साथ अच्छी तरह से फिट बैठता हूं।
त्वरित उत्तर के लिए धन्यवाद। तो पहले विकल्प को देखते हुए: दो उपयोगकर्ताओं के साथ एक 'मास्टर' भूमिका रखने के बजाय, मेरे पास दो उपयोगकर्ता होंगे जो प्रत्येक को दूसरे पर दिए गए हैं? जैसे उपयोगकर्ता उपयोगकर्ता को उपयोगकर्ता 1 को अनुदान दें; उपयोगकर्ता उपयोगकर्ता को उपयोगकर्ता 1 को अनुदान दें? और इसे 'स्विच' से पहले हर बार मैन्युअल रूप से निष्पादित करना होगा? अगर मैं 'डिफॉल्ट प्राइवेट्स' का उपयोग करता हूं, हालांकि मैं इसे सिर्फ एक बार कर सकता हूं। सही? – gingerlime
['GRANT'] (http://www.postgresql.org/docs/current/interactive/sql-grant.html) का मतलब विशेषाधिकारों को स्थायी रूप से प्रदान करना है और केवल एक बार इसकी आवश्यकता है। –
दास होने के लिए खेद है, लेकिन मुझे समझ में नहीं आता कि यह कैसे काम करेगा। ऐसा लगता है कि अनुदान पदानुक्रमित हैं, उदा। 'उपयोगकर्ता उपयोगकर्ता को उपयोगकर्ता 2' दें, इसलिए उपयोगकर्ता 2 में उपयोगकर्ता 1 के समान अनुमतियां होंगी, लेकिन दूसरी तरफ नहीं। मुझे दोनों उपयोगकर्ताओं को एक ही विशेषाधिकार प्राप्त करने की आवश्यकता है, भले ही उपयोगकर्ता ने एक टेबल बनाया हो। शायद मुझे कुछ याद आ रही है। – gingerlime