ভাবেন,
আমি আমার পোস্টগ্রিজ ব্যবহারকারী অ্যাক্সেস নিয়ন্ত্রণ ডিজাইনকে আরও ভাল অনুশীলনের সাথে আরও সুসংহত করে তুলতে সাহায্য করতে পারি। আমি একটি ছোট উত্পাদন পোস্টগ্রিস সার্ভার রোল আউট করতে সহায়তা করছি তবে আমি কোনও ডিবি প্রশাসক নই, তাই আমি বিপজ্জনক হওয়ার পক্ষে যথেষ্ট জানি know
Postgres v9.2 এর একটি ইনস্টল সহ একটি সার্ভার রয়েছে। এই ইনস্টলটি একাধিক ডাটাবেস হোস্ট করে, প্রতিটি একেবারে পৃথক "গ্রাহক" হিসাবে পরিবেশন করে। অন্য কথায়, গ্রাহক 1, ডেটাবেস 2 ব্যবহার করা উচিত নয় এবং আরও কিছু কথা। স্বাভাবিক ক্রিয়াকলাপের সময়, ডেটাবেসগুলি কেকপিএইচপি-র একটি মিলের উদাহরণ দিয়ে অ্যাক্সেস করা হয়, সমস্ত পোস্টগ্রিসের মতো একই সার্ভারে সহ-অবস্থিত। যদিও এই স্থাপনার ক্ষেত্রে সম্ভাব্য অপ্টিমাইজেশন থাকতে পারে, তবে আমি বেশিরভাগই পিএসকিএল ভূমিকাতে আগ্রহী।
আমি যা পড়েছি তার উপর ভিত্তি করে, মনে হচ্ছে তিন ধরণের ভূমিকা অর্থবোধ করবে:
- অ-ডিফল্ট পাসওয়ার্ড সহ সুপারউজার পোস্টগ্রাগ করে
- প্রশাসকের ভূমিকাতে রুটিন রক্ষণাবেক্ষণ, ডিবি তৈরি, ব্যাকআপ, পুনঃস্থাপনের জন্য অতিপরিচয় অধিকার নেই। গ্রাহকের সমস্ত ডাটাবেস সহ কিছু করতে সক্ষম হওয়া উচিত।
- ব্যবহারকারীদের নিজ নিজ ডেটাবেজে CRUD করার সক্ষমতা রয়েছে ro এটি বাস্তবায়ন পরিষ্কার করলে তাদের নিজস্ব ডিবিতে আরও অধিকার সহ্য করা যেতে পারে।
সেই নকশা বাস্তবায়ন যেখানে আমি খুব কম আত্মবিশ্বাসী। ডিবি বনাম টেবিলের মালিকানা এবং সেই সাথে কে কে কিছুটা কাদা ছিলে তার উত্তরাধিকারী হওয়া উচিত। নীচে আমার ডাটাবেস এবং আমার ব্যবহারকারীদের দেওয়া আছে। বাস্তবায়ন মূল্যায়ন করার জন্য কি সেই যথেষ্ট তথ্য?
Role name | Attributes | Member of
-----------+------------------------------------------------+-------------------
admin | Create role, Create DB | {user1, user2}
postgres | Superuser, Create role, Create DB | {}
user1 | | {}
user2 | | {}
postgres=# \l
List of databases
Name | Owner | Encoding | Collate | Ctype | Access privileges
-----------+----------+----------+---------+-------+-----------------------
admin | postgres | UTF8 | en_US | en_US | =Tc/postgres +
| | | | | postgres=CTc/postgres+
| | | | | admin=CTc/postgres
postgres | postgres | UTF8 | en_US | en_US |
template0 | postgres | UTF8 | en_US | en_US | =c/postgres +
| | | | | postgres=CTc/postgres
template1 | postgres | UTF8 | en_US | en_US | =c/postgres +
| | | | | postgres=CTc/postgres
user1 | admin | UTF8 | en_US | en_US | =Tc/admin +
| | | | | admin=CTc/admin +
| | | | | user1=CTc/admin
user2 | admin | UTF8 | en_US | en_US | =Tc/admin +
| | | | | admin=CTc/admin +
| | | | | user2=CTc/admin
সাফ মধ্যে বাহ্যিক সংযোগ এবং পাসওয়ার্ড প্রতিরোধ করতে, pg_hba.conf যেমন:
local all all md5
host all all 127.0.0.1/32 md5
host all all ::1/128 md5