পোস্টগ্রাইএসকিউএলে কেবলমাত্র একক টেবিল অ্যাক্সেসের জন্য ন্যূনতম অনুদান


10

নিম্নলিখিত কমান্ডগুলির একটি তালিকা যা নতুন ব্যবহারকারী (লগইন) তৈরি করতে এবং পোস্টগ্রাইএসকিউএলে একটি নির্দিষ্ট সারণীর জন্য কেবলমাত্র পাঠ্য অ্যাক্সেস দেওয়ার জন্য কাজ করে বলে মনে হচ্ছে।

আসুন ধরে নেওয়া যাক এই কমান্ডগুলি যথেষ্ট সুযোগ-সুবিধা (যেমন postgresডিফল্ট ইনস্টলটিতে লগইন) সহ লগইনে কার্যকর করা হয় ।

CREATE ROLE user_name NOSUPERUSER NOCREATEDB 
NOCREATEROLE NOINHERIT LOGIN PASSWORD 'pwd' VALID UNTIL 'infinity';

এখন আমি ডাটাবেসে selectটেবিলের tab_abcউপর মঞ্জুরি দিতে চাই db_xyz, সুতরাং এটি এখানে যায় (ডাটাবেসগুলি db_xyzপিজএডমিন বা এটির মতো কিছু হিসাবে বর্তমান হিসাবে নির্বাচিত হয়):

grant select on tab_abc to user_name;

প্রশ্নটি হল: এটি কি যথেষ্ট বা আরও বেশি অনুদান (ডাটাবেস connect, usageসম্ভবত) থাকতে হবে?

এই কমান্ডগুলি আমার পক্ষে কাজ করে বলে মনে হচ্ছে, তবে আমার ডিফল্ট ইনস্টলেশনটিতে ডিফল্ট সুরক্ষা সেটিংস রয়েছে। সার্ভার অ্যাডমিন আরও শক্তিশালী সুরক্ষা কনফিগার করলে আমার কী অতিরিক্ত অনুদান যুক্ত করা উচিত?

মনে হচ্ছে যে আমি মঞ্জুর করার প্রয়োজন হবে না connectকিংবা usage- যখন দেওয়া যে implicite হয় select? সবসময় কি তাই হয়?

উত্তর:


12

প্রশ্নটি হ'ল: এটি কি যথেষ্ট বা আরও বেশি অনুদান (ডাটাবেস কানেক্ট, ব্যবহারের ব্যবহার) হতে হবে?

সুরক্ষা ডিফল্ট থেকে মূলত এই পয়েন্টগুলিতে কঠোর হতে পারে:

  • pg_hba.confফাইল। কোনও ডাটাবেস সুবিধা বিবেচনা করার আগে এটি সংযোগগুলি ফিল্টার করে। ডিফল্ট স্থানীয় সংযোগগুলির জন্য তুলনামূলকভাবে উন্মুক্ত, তবে এটি ডাটাবেস, ব্যবহারকারী নাম এবং নেটওয়ার্ক উত্সের একটি সুস্পষ্ট তালিকার মধ্যে সীমাবদ্ধ থাকতে পারে।

  • জনসাধারণের জন্য অনুমতি , যে কারওর ছদ্ম-ভূমিকা। কোনও ব্যবহারকারী স্পষ্টভাবে সংযোগ করতে পারবেন যদি সংযোগের সুযোগটি মঞ্জুর করা হয় PUBLICতৈরি গ্রাহকরা কোনও অনুদান ছাড়াই পোস্টগ্রাইএসকিউএল-এর সমস্ত ডাটাবেস অ্যাক্সেস করতে পারবেন দেখুন । কোনও ডাটাবেসে জনসাধারণের কাছ থেকে সমস্ত সুযোগ-সুবিধা বাতিল হয়ে যেতে পারে। আপনি যে বড় পোস্টগ্রিজ এসকিউএল সংস্করণটি ব্যবহার করছেন তার জন্য ডকটিতে রেভোক করুন দেখুন ।

  • publicস্কিমার অস্তিত্ব । এটি সুবিধার্থে ডিফল্টভাবে ডেটাবেস দিয়ে তৈরি করা হয়েছে তবে এটি বাধ্যতামূলক নয়। publicস্কিমা থেকে জনসাধারণের অনুমতিগুলি সরিয়ে দেওয়ার পরিবর্তে, publicনতুন ব্যবহারকারীদের কোনওরই অন্তর্নিহিত অনুমতি না থাকাতে ডিবিএর জন্য কেবল স্কিমাটি ফেলে দেওয়া বোধগম্য হতে পারে ।

এই ডিফল্টগুলি মুছে ফেলা হয়েছে এমন ক্ষেত্রে, একটি টেবিল পড়ার জন্য নতুন ব্যবহারকারীর মঞ্জুরি দেওয়া উচিত:

GRANT CONNECT ON DATABASE dbname TO username;

ডাটাবেস স্তরে:

GRANT USAGE ON SCHEMA schemaname TO username;
GRANT SELECT ON schemaname.tablename TO username;
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.