পোস্টগ্রেএসকিএল সুপার-ব্যবহারকারী ছাড়াই এক্সটেনশনগুলি সক্ষম করে


13

আমার একটি পোস্টগ্রেএসকিউএল 9.5 সার্ভার রয়েছে যার উপর আমার কাছে এমন স্ক্রিপ্ট রয়েছে যা ব্যবহারকারীদের জন্য স্বয়ংক্রিয়ভাবে ভূমিকা এবং ডাটাবেস তৈরি করে। এই ডাটাবেসগুলির মধ্যে এটি নির্দিষ্ট এক্সটেনশনগুলি (যেমন pgcrypto) সক্ষম করতে সহায়ক হবে, তবে আমি এটি বুঝতে পারি যে কোনওটি চালানোর জন্য একটি সুপারউসার হতে হবে CREATE EXTENSION। কোনও সুপারজার অ্যাকাউন্টে ম্যানুয়ালি লগ ইন না করে এই জাতীয় এক্সটেনশনগুলি সক্ষম করার কোনও উপায় আছে কি?


4
আপনি কি এগুলি যুক্ত করার চেষ্টা করেছেন template1এবং তারপরে template1পছন্দ মতো প্রতিটি ব্যবহারকারীর ডাটাবেস তৈরি করবেন CREATE DATABASE foo OWNER=userfoo TEMPLATE=template1?
ক্যাসানড্রি

1
@ ক্যাসানড্রি এর কথা ভাবেন নি, তবে এটি একটি ভাল চিন্তাভাবনা। আদর্শভাবে আমি চাই মালিকরা তারা চাইলে এক্সটেনশনটি যুক্ত করতে সক্ষম হন তবে এটি এখনও একটি গ্রহণযোগ্য সম্ভাবনা।
বেলডাজ

উত্তর:


10

এক্সটেনশনগুলির ডক্স থেকে ,

superuser (বুলিয়ান) যদি এই প্যারামিটারটি সত্য হয় (যা পূর্বনির্ধারিত হয়) তবে কেবল সুপারইসাররা এক্সটেনশন তৈরি করতে বা এটি একটি নতুন সংস্করণে আপডেট করতে পারে। যদি এটি মিথ্যাতে সেট করা থাকে তবে ইনস্টলেশন বা আপডেট স্ক্রিপ্টে কমান্ডগুলি কার্যকর করতে কেবল অধিকারগুলি প্রয়োজন।

মান সেট করা নেই pgcrypto.control, সুতরাং এটি সত্যের ডিফল্ট হয় যার জন্য একটি সুপার ব্যবহারকারী প্রয়োজন।

এর অর্থ আপনি বর্ধিত এক্সটেনশনেCREATE EXTENSION থাকা ডকুমেন্টগুলি আপনাকে বিশ্বাস করতে পরিচালিত করা সত্ত্বেও আপনি কেবলমাত্র ডাটাবেসের মালিক হিসাবে পারবেন না ।

আমি এটিকে নির্ধারণ করার চেষ্টা করেছি falseএবং আনন্দ নেই। সি একটি অবিশ্বস্ত ভাষা এবং আপনি পাবেন

ত্রুটি: ভাষার জন্য অনুমতি অস্বীকার করা হয়েছে গ

পিজি_ ভাষাতে ডক্স থেকে

অবিশ্বস্ত ভাষাগুলিতে কেবল সুপারইউসাররা ফাংশন তৈরি করতে পারে।

... অবশ্যই আপনি সুপারভাইজার হিসাবে cবিশ্বাসযোগ্য করতে পারেন UPDATE pg_language set lanpltrusted = true where lanname = 'c';। তারপরে CREATE EXTENSION pgcryptoএকটি অ-সুপারভাইজার হিসাবে সূক্ষ্মভাবে কাজ করবে। তবে, আপনার ব্যবহারকারীদের আপনার এক্সটেনশান ডিরেক্টরিতে উত্স আপলোড করার বিষয়ে এবং তারপরে এটি ডাটাবেসে ইনস্টল করার বিষয়ে যদি চিন্তা করতে হয় তবে এটি একটি খারাপ ধারণা বলে মনে হচ্ছে। এর অর্থ হল, আমি এতদূর যেতে পারতাম না। আমি এই বিড়ালটির ত্বকের অন্য উপায় খুঁজে পাব


ধন্যবাদ ইভান, আমি যতটা জিজ্ঞাসা করতে পারি ততই উত্তম উত্তর। আমি সম্ভবত এটি পেতে ক্যাস্যান্ড্রির বিড়াল চামড়ার প্রস্তাবটি বেছে নেব। আমি একটি সঞ্চিত পদ্ধতিতে ক্রিয়েট এক্সটেনশন মোড়ানো সম্পর্কেও ভেবেছিলাম, তবে ডিবিলিঙ্ক প্রমাণীকরণের ইয়াকিনেস ছাড়াই একই ডাটাবেসে এই কাজটি করার কোনও পথ খুঁজে পেলাম না।
বেলডাজ

pg_dumpএক্সটেনশন সম্পর্কিত বিবরণী ডাম্পিং থেকে এটি রোধ করার কোনও বিকল্প না থাকার বিষয়টি কী ? এসকিউএল দ্বারা ফেলে দেওয়া বিবৃতিগুলি সরাতে আমাকে বর্তমানে বাহ্যিক পাঠ্য প্রক্রিয়াকরণ সরঞ্জামগুলি ব্যবহার করতে হবে pg_dump
ক্লোডিক্স

@ ইভান ক্যারল: পিএসএইচএল ক্লায়ার মাধ্যমে সুপারউজারটিকে মিথ্যা হিসাবে সেট করা সম্ভব? আমার অ্যামাজন আডস আরডিএসের একটি উদাহরণ রয়েছে এবং pgcrypto.control এ অ্যাক্সেস নেই।
রিবামার

2
@ribamar না কারণ এর অর্থ হ'ল ডাটাবেসের সাথে সংযুক্ত যে কেউ ডিবি পোস্টমাস্টার হিসাবে আক্ষরিক যথেচ্ছ কোড কার্যকর করতে পারে। এটি একটি ভয়ঙ্কর ধারণা হবে।
ইভান ক্যারল

কেউ নয়, সুপারভাইজার। আমি বুঝতে পেরেছি যে আপনি অপারেটিং সিস্টেমটিকে ডিবিএমএস সুপার ব্যবহারকারীর থেকে পৃথক করে তুলুন, যদিও আমি যদি এমন সিদ্ধান্ত নিচ্ছিলাম তবে আমি সরঞ্জামটিকে শক্তিশালী করতে যাব এবং যদি সত্যই আরও একটি শক্তিশালী ব্যবহারকারী তৈরি করার প্রয়োজন হয়, আমি এটি বাস্তবায়ন করতাম সরঞ্জাম ভিতরে।
ribamar
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.