postgresql केवल एक सुपरसियर क्यों विस्तार कर सकता है, लेकिन हेरोकू पर नहीं?



heroku hstore (1)

Hstore एक्सटेंशन उन कार्यों को बनाता है जो बाहरी डायनामिक ऑब्जेक्ट से कोड कॉल करते हैं, जिसके लिए सुपरसुर विशेषाधिकार की आवश्यकता होती है। यही कारण है कि hstore एक्सटेंशन बनाने के लिए superuser विशेषाधिकार की आवश्यकता है।

हेरोकू के लिए, यह मेरी समझ है कि वे एक विशेष विस्तार श्वेतसूची मॉड्यूल के साथ चल रहे हैं, जो उपयोगकर्ताओं को कुछ एक्सटेंशन बनाने की अनुमति देता है भले ही वे सुपरसर्स न हों। मेरा मानना ​​है कि यह इस कोड पर आधारित है: https://github.com/dimitri/pgextwlist । यदि आप अपने डेटाबेस में समान कार्यक्षमता चाहते हैं तो आप स्वयं को उस कोड को स्थापित करने का प्रयास कर सकते हैं।

जब मैं अपने डेटाबेस पर hstore को सक्षम करने का प्रयास करता हूं:

=> CREATE EXTENSION IF NOT EXISTS hstore;
ERROR:  permission denied to create extension "hstore"
HINT:  Must be superuser to create this extension.

मेरा उपयोगकर्ता एक सुपरसियर नहीं है, लेकिन डेटाबेस का मालिक है।

क्रिएट एक्सटेन्शन डॉक्स के अनुसार:

किसी एक्सटेंशन को लोड करने के लिए वही विशेषाधिकारों की आवश्यकता होती है जिन्हें इसकी घटक वस्तुएं बनाने की आवश्यकता होती है। अधिकांश एक्सटेंशन के लिए इसका मतलब है कि सुपरसुर या डेटाबेस स्वामी विशेषाधिकारों की आवश्यकता है। उपयोगकर्ता जो एक्सटेंशन बनाते हैं, बाद के विशेषाधिकार जांच के उद्देश्यों के साथ-साथ विस्तार की स्क्रिप्ट द्वारा बनाई गई किसी भी वस्तु के मालिक के विस्तार के स्वामी बन जाते हैं।

क्या होस्टोर कर रहा है जिसके लिए सुपरसुर विशेषाधिकारों की आवश्यकता है? क्या यह डेटाबेस के बाहर क्लस्टर के हिस्सों को प्रभावित कर रहा है जिसे मैं इसे जोड़ रहा हूं?

आगे की भरोसेमंदता:

डीबी उपयोगकर्ता हेरोोक पोस्टग्रेस प्रदान करता है एक सुपरसियर नहीं है :

Heroku Postgres उपयोगकर्ताओं को उनके डेटाबेस पर सभी गैर-सुपरसुर अनुमतियां दी जाती हैं। इनमें SELECT , INSERT , UPDATE , DELETE , TRUNCATE , REFERENCES , TRIGGER , CREATE , CONNECT , TEMPORARY , EXECUTE , और USAGE

हालांकि, वह उपयोगकर्ता विस्तार hstore बनाने में सक्षम है :

किसी भी समर्थित एक्सटेंशन को बनाने के लिए, heroku pg: psql के साथ एक सत्र खोलें और उचित आदेश चलाएं:

$ heroku pg:psql
Pager usage is off.
psql (9.2.4)
SSL connection (cipher: DHE-RSA-AES256-SHA, bits: 256)
Type "help" for help.

ad27m1eao6kqb1=> CREATE EXTENSION hstore;
CREATE EXTENSION
ad27m1eao6kqb1=>

(संदर्भ के लिए, मैं एक Dokku परिनियोजन स्थापित करने का प्रयास कर रहा हूं, इसलिए Dokku की तुलना विशेष रूप से महत्वपूर्ण है।)





hstore