Access Control এবং Privileges ডেটাবেসে ব্যবহারকারীদের অ্যাক্সেস নিয়ন্ত্রণ এবং তাদেরকে নির্দিষ্ট কাজের জন্য অনুমতি দেওয়ার প্রক্রিয়া। এটি ডেটাবেস নিরাপত্তার একটি গুরুত্বপূর্ণ অংশ, যা ডেটাবেসের সংবেদনশীল তথ্য এবং সম্পদগুলির সুরক্ষা নিশ্চিত করতে ব্যবহৃত হয়। HSQLDB সহ অন্যান্য রিলেশনাল ডেটাবেস সিস্টেমে, অ্যাক্সেস কন্ট্রোল এবং প্রিভিলেজ ম্যানেজমেন্টের জন্য বিভিন্ন কমান্ড এবং ফিচার প্রদান করা হয়।
Access Control এর ধারণা
Access Control হল একটি নিরাপত্তা ব্যবস্থা যা নির্ধারণ করে কে কোন ডেটাবেস অবজেক্ট বা রিসোর্সের সাথে কী ধরনের ইন্টারঅ্যাকশন করতে পারবে। ডেটাবেসের অ্যাক্সেস নিয়ন্ত্রণ করতে Authentication (ব্যবহারকারীর পরিচয় যাচাই) এবং Authorization (ব্যবহারকারীর অনুমতি নির্ধারণ) দুটি প্রধান উপাদান প্রয়োজন।
Authentication:
এটি ব্যবহারকারীর পরিচয় যাচাই করার প্রক্রিয়া। সাধারণত এটি ব্যবহারকারীর নাম এবং পাসওয়ার্ড দিয়ে পরিচালিত হয়।
Authorization:
একবার ব্যবহারকারী প্রমাণিত হলে, তাদেরকে নির্দিষ্ট কাজ করার জন্য অনুমতি দেওয়া হয়। এটি Privileges (অধিকার) এর মাধ্যমে নিয়ন্ত্রিত হয়।
Privileges এর ধারণা
Privileges হল নির্দিষ্ট ডেটাবেস অ্যাকশনগুলির জন্য ব্যবহারকারীদের অনুমতি। HSQLDB তে বিভিন্ন ধরনের প্রিভিলেজ থাকে যা নির্দিষ্ট কাজগুলি করার জন্য ব্যবহারকারীদের অনুমতি প্রদান করে।
HSQLDB তে সাধারণত নিম্নলিখিত প্রিভিলেজগুলো ব্যবহার করা হয়:
- SELECT: ডেটাবেস থেকে ডেটা পড়ার অনুমতি দেয়।
- INSERT: নতুন রেকর্ড (সারি) টেবিলে সন্নিবেশ করার অনুমতি দেয়।
- UPDATE: বিদ্যমান রেকর্ড আপডেট করার অনুমতি দেয়।
- DELETE: টেবিল থেকে রেকর্ড মুছে ফেলার অনুমতি দেয়।
- CREATE: নতুন টেবিল, ইনডেক্স বা ভিউ তৈরি করার অনুমতি দেয়।
- DROP: টেবিল, ইনডেক্স বা ভিউ মুছে ফেলার অনুমতি দেয়।
- ALTER: টেবিল বা অন্যান্য ডেটাবেস অবজেক্ট পরিবর্তন করার অনুমতি দেয়।
- EXECUTE: ফাংশন বা স্টোরড প্রোসিডিউর চালানোর অনুমতি দেয়।
Access Control এবং Privileges ম্যানেজমেন্ট
HSQLDB তে Access Control এবং Privileges ম্যানেজমেন্টের জন্য GRANT এবং REVOKE কমান্ড ব্যবহার করা হয়।
GRANT কমান্ড
GRANT কমান্ড ব্যবহার করে, ডেটাবেস অ্যাডমিনিস্ট্রেটর বা ইউজার নির্দিষ্ট প্রিভিলেজ ব্যবহারকারীকে প্রদান করতে পারেন।
GRANT privilege ON object TO user;
উদাহরণ:
- একটি ব্যবহারকারীকে
Studentsটেবিল থেকে ডেটা পড়ার (SELECT) অনুমতি দেওয়া:
GRANT SELECT ON Students TO user1;
- ব্যবহারকারীকে
INSERTএবংUPDATEঅনুমতি দেওয়া:
GRANT INSERT, UPDATE ON Students TO user1;
এখানে, user1 কে Students টেবিলের উপর নির্দিষ্ট প্রিভিলেজ প্রদান করা হয়েছে।
REVOKE কমান্ড
REVOKE কমান্ড ব্যবহার করে, পূর্বে দেওয়া প্রিভিলেজগুলো প্রত্যাহার করা যায়।
REVOKE privilege ON object FROM user;
উদাহরণ:
- একটি ব্যবহারকারীকে
SELECTঅনুমতি প্রত্যাহার করা:
REVOKE SELECT ON Students FROM user1;
- একটি ব্যবহারকারীকে
INSERTএবংUPDATEঅনুমতি প্রত্যাহার করা:
REVOKE INSERT, UPDATE ON Students FROM user1;
GRANT OPTION
একজন ব্যবহারকারীকে GRANT OPTION দিয়ে প্রিভিলেজ প্রদান করলে, সেই ব্যবহারকারী অন্য ব্যবহারকারীদের জন্যও সেই প্রিভিলেজগুলো প্রদান করতে পারে।
GRANT SELECT ON Students TO user1 WITH GRANT OPTION;
এখানে, user1 কে Students টেবিল থেকে SELECT প্রিভিলেজ প্রদান করা হয়েছে এবং সেই ব্যবহারকারী অন্যদেরও একই প্রিভিলেজ প্রদান করতে পারবে।
Access Control এর জন্য Role Management
ডেটাবেসে অনেকগুলো ব্যবহারকারী থাকলে, প্রতিটি ব্যবহারকারীর জন্য প্রিভিলেজ অ্যাসাইন করা কিছুটা কঠিন হতে পারে। এই পরিস্থিতিতে Role ব্যবহার করা খুবই কার্যকরী। একটি Role হল একাধিক প্রিভিলেজের সংকলন, যা ব্যবহারকারীকে অ্যাসাইন করা যায়।
Role তৈরি করা:
CREATE ROLE read_only;
Role এ Privilages অ্যাসাইন করা:
GRANT SELECT ON Students TO read_only;
Role ব্যবহারকারীর জন্য অ্যাসাইন করা:
GRANT read_only TO user1;
এখানে, read_only রোলটি user1 কে দেওয়া হয়েছে এবং সেই রোলের অধীনে SELECT প্রিভিলেজ পাওয়া যাবে।
Role থেকে Privilages প্রত্যাহার করা:
REVOKE read_only FROM user1;
এটি user1 এর রোল থেকে সমস্ত প্রিভিলেজ প্রত্যাহার করে নেবে।
Database Level Privileges
এছাড়াও, ডেটাবেসের উপর গ্র্যান্ট এবং রিভোক ব্যবহৃত হতে পারে:
GRANT ALL PRIVILEGES ON DATABASE mydb TO user1;
এটি user1 কে mydb ডেটাবেসে সমস্ত প্রিভিলেজ প্রদান করবে।
সারাংশ
- Access Control হল ব্যবহারকারীদের পরিচয় যাচাই ও তাদেরকে ডেটাবেসের নির্দিষ্ট অংশে প্রবেশের অনুমতি দেয়া।
- Privileges হল বিভিন্ন কাজের জন্য ব্যবহারকারীদের অনুমতি, যেমন
SELECT,INSERT,UPDATE,DELETE, ইত্যাদি। - GRANT এবং REVOKE কমান্ড ব্যবহার করে আপনি ব্যবহারকারীদের নির্দিষ্ট প্রিভিলেজ প্রদান ও প্রত্যাহার করতে পারেন।
- Role Management ব্যবহারকারীদের গ্রুপে বিভক্ত করার মাধ্যমে প্রিভিলেজ ম্যানেজমেন্ট সহজতর করে।
এই সিস্টেম ব্যবহার করে আপনি ডেটাবেসের নিরাপত্তা এবং কার্যকারিতা নিশ্চিত করতে পারেন, এবং প্রতিটি ব্যবহারকারীকে সঠিক অনুমতির আওতায় রাখার মাধ্যমে ডেটা ইন্টিগ্রিটি বজায় রাখতে পারেন।
Read more