Role-Based Access Control (RBAC) হলো একটি নিরাপত্তা ব্যবস্থা, যা ডাটাবেস বা টেবিলে অ্যাক্সেস নিয়ন্ত্রণ করতে ব্যবহার করা হয়। RBAC-এ বিভিন্ন ব্যবহারকারী (users) নির্দিষ্ট ভূমিকা (roles) অনুযায়ী ডাটাবেস বা টেবিলে অ্যাক্সেস পায়। PHPMyAdmin ব্যবহার করে MySQL বা MariaDB ডাটাবেসে RBAC কনফিগার করা যায়। এটি ডাটাবেস সুরক্ষা নিশ্চিত করার জন্য অত্যন্ত কার্যকর।
RBAC কনসেপ্ট এবং MySQL-এ ভূমিকা
- Role:
- Role হলো অনুমতির একটি সেট। উদাহরণ: একটি "Admin" রোলে টেবিল তৈরি ও ডিলিট করার অনুমতি থাকতে পারে, যখন একটি "Viewer" রোল শুধুমাত্র ডেটা দেখতে পারবে।
- User:
- User হলো ডাটাবেস অ্যাক্সেসকারী ব্যক্তি। RBAC-এ User কে একটি Role-এর অধীনে ফিট করানো হয়।
- Privileges:
- Privileges হলো ডাটাবেস বা টেবিলে নির্দিষ্ট কার্যাবলী সম্পাদনের অনুমতি। উদাহরণ: SELECT, INSERT, UPDATE, DELETE।
- Granting Privileges:
- RBAC সিস্টেমে, Role-এ Privileges প্রদান করা হয় এবং User-কে সেই Role-এ অ্যাসাইন করা হয়।
PHPMyAdmin-এ RBAC সেটআপের ধাপ
১. নতুন ব্যবহারকারী তৈরি করা
PHPMyAdmin-এ RBAC শুরু করতে প্রথমে ব্যবহারকারী তৈরি করতে হবে।
- PHPMyAdmin-এ লগইন করুন
- ব্রাউজারে
http://localhost/phpmyadminটাইপ করুন এবং অ্যাডমিন একাউন্ট দিয়ে লগইন করুন।
- ব্রাউজারে
- User Accounts সেকশনে যান
- ড্যাশবোর্ড থেকে User Accounts ট্যাবে যান।
- নতুন ব্যবহারকারী তৈরি করুন
- "Add User Account" অপশন সিলেক্ট করুন।
- প্রয়োজনীয় তথ্য পূরণ করুন:
- Username: ব্যবহারকারীর নাম লিখুন।
- Host Name: সাধারণত
%বাlocalhost। - Password: একটি নিরাপদ পাসওয়ার্ড নির্ধারণ করুন।
- Privileges নির্ধারণ করুন
- টেবিলে অ্যাক্সেস দেওয়ার জন্য প্রাথমিক Privileges নির্বাচন করুন।
- উদাহরণ: SELECT, INSERT ইত্যাদি।
২. Role তৈরি করা
MySQL ৮.০ এবং তার পরের সংস্করণে Role তৈরি করা সম্ভব। Role ব্যবহার করে Privileges পরিচালনা করা যায়।
- SQL ট্যাবে যান
PHPMyAdmin ড্যাশবোর্ডে SQL ট্যাবে ক্লিক করুন। Role তৈরি করুন
নিচের SQL কোড লিখুন এবং চালান:CREATE ROLE admin_role; CREATE ROLE viewer_role;Privileges যোগ করুন
প্রতিটি Role-এ Privileges যোগ করতে নিম্নলিখিত কোড লিখুন:GRANT ALL PRIVILEGES ON my_database.* TO admin_role; GRANT SELECT ON my_database.* TO viewer_role;
৩. User-কে Role অ্যাসাইন করা
একটি ব্যবহারকারীকে নির্দিষ্ট Role অ্যাসাইন করতে নিম্নলিখিত কোড ব্যবহার করুন:
User-কে Role অ্যাসাইন করুন
GRANT admin_role TO 'user1'@'localhost'; GRANT viewer_role TO 'user2'@'localhost';Default Role নির্ধারণ করুন
ব্যবহারকারী লগইন করার সময় একটি Default Role সক্রিয় করতে নিচের কোড ব্যবহার করুন:SET DEFAULT ROLE admin_role FOR 'user1'@'localhost';
RBAC প্রয়োগ: প্র্যাকটিক্যাল উদাহরণ
উদাহরণ: ডাটাবেসে RBAC প্রয়োগ
ধরা যাক, আপনি একটি ডাটাবেস "school_db" পরিচালনা করছেন, যেখানে দুটি Role রয়েছে:
- Admin: টেবিল তৈরি, ডেটা যোগ ও মুছতে পারবে।
- Viewer: শুধুমাত্র ডেটা দেখতে পারবে।
ধাপ ১: Role তৈরি করুন
CREATE ROLE admin_role;
CREATE ROLE viewer_role;
ধাপ ২: Privileges অ্যাসাইন করুন
GRANT ALL PRIVILEGES ON school_db.* TO admin_role;
GRANT SELECT ON school_db.* TO viewer_role;
ধাপ ৩: ব্যবহারকারী তৈরি এবং Role অ্যাসাইন করুন
CREATE USER 'admin_user'@'localhost' IDENTIFIED BY 'securepassword';
CREATE USER 'viewer_user'@'localhost' IDENTIFIED BY 'securepassword';
GRANT admin_role TO 'admin_user'@'localhost';
GRANT viewer_role TO 'viewer_user'@'localhost';
SET DEFAULT ROLE admin_role FOR 'admin_user'@'localhost';
SET DEFAULT ROLE viewer_role FOR 'viewer_user'@'localhost';
RBAC পরিচালনা PHPMyAdmin থেকে
- Privileges ট্যাব ব্যবহার করুন
- ডাটাবেস নির্বাচন করুন।
- Privileges ট্যাবে গিয়ে প্রতিটি ব্যবহারকারীর জন্য Privileges পরিচালনা করুন।
- SQL কোয়েরি ব্যবহার করুন
- PHPMyAdmin-এর SQL ট্যাবে গিয়ে Role এবং Privileges পরিবর্তন করুন।
সারাংশ
PHPMyAdmin-এর মাধ্যমে Role-Based Access Control (RBAC) সহজেই বাস্তবায়ন করা যায়। এটি ব্যবহার করে আপনি ডাটাবেস এবং টেবিলে সুনির্দিষ্ট অ্যাক্সেস নিয়ন্ত্রণ করতে পারবেন। MySQL-এর Role এবং Privileges সিস্টেম ব্যবহার করে, ডাটাবেসের নিরাপত্তা ও ব্যবস্থাপনা আরও সহজ এবং কার্যকর হয়। PHPMyAdmin-এর GUI এবং SQL ট্যাব RBAC সেটআপ ও পরিচালনার জন্য খুবই উপযোগী।
Read more