SQL Server-এ User এবং Role ম্যানেজমেন্ট খুবই গুরুত্বপূর্ণ একটি বিষয়, কারণ এটি ডেটাবেস অ্যাক্সেস কন্ট্রোল এবং নিরাপত্তা নিশ্চিত করতে সহায়তা করে। Users হলো ডেটাবেসে যারা লগইন করে তাদের অ্যাক্সেস অনুমতি দেওয়া অ্যাকাউন্ট এবং Roles হলো একটি গ্রুপ যেখানে কিছু ইউজারকে একসাথে অ্যাক্সেস কন্ট্রোল দেওয়া হয়।
SQL Server-এ ইউজার এবং রোল ম্যানেজমেন্টের জন্য কিছু প্রধান কনসেপ্ট এবং কমান্ড রয়েছে যা ডেটাবেসের নিরাপত্তা ব্যবস্থা শক্তিশালী করে।
১. User Management
SQL Server-এ User তৈরি করা, পরিবর্তন করা, এবং মুছে ফেলার কাজগুলো করার জন্য আপনি CREATE USER, ALTER USER, এবং DROP USER কমান্ড ব্যবহার করতে পারেন। ইউজার তৈরির সময়, আপনি তাদের কী ধরনের অ্যাক্সেস দেওয়া হবে তা নির্ধারণ করবেন।
১.১ User তৈরি করা
একটি নতুন Database User তৈরি করার জন্য CREATE USER কমান্ড ব্যবহার করা হয়:
CREATE USER [username] FOR LOGIN [login_name];
username: ইউজারের নাম।login_name: SQL Server লগইন যা ইউজারকে ডেটাবেসে অ্যাক্সেস দিতে ব্যবহৃত হবে।
উদাহরণ:
CREATE USER JohnDoe FOR LOGIN JohnDoeLogin;
এখানে, JohnDoeLogin হলো SQL Server লগইন এবং JohnDoe হলো ডেটাবেস ইউজার।
১.২ User এর Permission দেয়া
একটি ইউজারকে ডেটাবেসে নির্দিষ্ট পারমিশন (অধিকার) দিতে GRANT কমান্ড ব্যবহার করা হয়:
GRANT SELECT, INSERT, UPDATE ON table_name TO username;
এখানে, SELECT, INSERT, এবং UPDATE পারমিশন username ইউজারের জন্য দেওয়া হবে।
উদাহরণ:
GRANT SELECT, INSERT ON Employees TO JohnDoe;
এটি JohnDoe ইউজারকে Employees টেবিলের SELECT এবং INSERT পারমিশন দেয়।
১.৩ User এর Permission প্রত্যাহার (Revoke)
একটি ইউজারের কাছে দেওয়া পারমিশন প্রত্যাহার করতে REVOKE কমান্ড ব্যবহার করা হয়:
REVOKE SELECT ON table_name FROM username;
উদাহরণ:
REVOKE SELECT ON Employees FROM JohnDoe;
এটি JohnDoe ইউজারের SELECT পারমিশন Employees টেবিল থেকে প্রত্যাহার করবে।
১.৪ User মুছে ফেলা
একটি ইউজারকে ডেটাবেস থেকে মুছে ফেলতে DROP USER কমান্ড ব্যবহার করা হয়:
DROP USER username;
উদাহরণ:
DROP USER JohnDoe;
এটি JohnDoe ইউজারকে ডেটাবেস থেকে মুছে ফেলবে।
২. Role Management
Roles হল ডেটাবেসের মধ্যে ইউজারের একটি গ্রুপ, যার মাধ্যমে একসাথে একাধিক ইউজারের অ্যাক্সেস কন্ট্রোল করা হয়। Roles দুটি ধরনের হয়:
- Fixed Roles: SQL Server দ্বারা প্রি-ডিফাইন করা রোল, যেমন
db_owner,db_datareaderইত্যাদি। - User-defined Roles: কাস্টম রোল, যা ডেটাবেস অ্যাডমিনিস্ট্রেটর তৈরি করতে পারেন।
২.১ Role তৈরি করা
একটি User-defined Role তৈরি করতে CREATE ROLE কমান্ড ব্যবহার করা হয়:
CREATE ROLE role_name;
উদাহরণ:
CREATE ROLE db_report_viewer;
এটি db_report_viewer নামক একটি নতুন রোল তৈরি করবে।
২.২ User কে Role এ যুক্ত করা
একটি ইউজারকে রোলে যোগ করতে EXEC sp_addrolemember ব্যবহার করা হয়:
EXEC sp_addrolemember 'role_name', 'username';
উদাহরণ:
EXEC sp_addrolemember 'db_report_viewer', 'JohnDoe';
এটি JohnDoe ইউজারকে db_report_viewer রোলে যোগ করবে।
২.৩ User এর Role থেকে রিমুভ করা
একটি ইউজারকে রোল থেকে সরাতে EXEC sp_droprolemember ব্যবহার করা হয়:
EXEC sp_droprolemember 'role_name', 'username';
উদাহরণ:
EXEC sp_droprolemember 'db_report_viewer', 'JohnDoe';
এটি JohnDoe ইউজারকে db_report_viewer রোল থেকে সরিয়ে দেবে।
২.৪ Role এর Permission দেয়া
একটি রোলকে নির্দিষ্ট পারমিশন দিতে GRANT কমান্ড ব্যবহার করা হয়:
GRANT SELECT, INSERT ON table_name TO role_name;
উদাহরণ:
GRANT SELECT, INSERT ON Employees TO db_report_viewer;
এটি db_report_viewer রোলকে Employees টেবিলের SELECT এবং INSERT পারমিশন দিবে।
২.৫ Role মুছে ফেলা
একটি কাস্টম রোল মুছে ফেলতে DROP ROLE কমান্ড ব্যবহার করা হয়:
DROP ROLE role_name;
উদাহরণ:
DROP ROLE db_report_viewer;
এটি db_report_viewer রোলটি ডেটাবেস থেকে মুছে ফেলবে।
৩. Fixed Database Roles
SQL Server কিছু Fixed Database Roles প্রি-ডিফাইন করে দেয় যা সিস্টেমে প্রতিষ্ঠিত থাকে এবং ডেটাবেসের মধ্যে নিরাপত্তা এবং অ্যাক্সেস নিয়ন্ত্রণে ব্যবহৃত হয়।
উদাহরণ: Fixed Roles
- db_owner: এই রোলটি পূর্ণ ডেটাবেস অ্যাক্সেস দেয়, এবং সমস্ত ডেটাবেস অপারেশন পরিচালনা করতে পারে।
- db_datareader: এই রোলটি টেবিল থেকে ডেটা পড়তে (SELECT) পারমিশন দেয়, তবে ডেটা আপডেট বা মুছে ফেলতে পারবে না।
- db_datawriter: এই রোলটি টেবিলের ডেটা আপডেট এবং ইনসার্ট করতে পারমিশন দেয়।
- db_ddladmin: এই রোলটি ডেটাবেসে DDL (Data Definition Language) স্টেটমেন্ট যেমন টেবিল তৈরি বা পরিবর্তন করতে পারমিশন দেয়।
৪. User এবং Role এর মধ্যে সম্পর্ক
- Users হল ডেটাবেসে লোগইন করা অ্যাকাউন্ট যারা ডেটাবেসের উপাদান (টেবিল, ভিউ, প্রোসিজিউর ইত্যাদি) অ্যাক্সেস করতে পারে।
- Roles হলো ইউজারের গ্রুপ, যার মাধ্যমে একসাথে একাধিক ইউজারকে নির্দিষ্ট পারমিশন দেওয়া যায়। ইউজাররা রোলের সদস্য হিসেবে পারমিশন অর্জন করে।
সারাংশ
- User Management: SQL Server-এ ইউজার তৈরি, পরিবর্তন, এবং মুছে ফেলার জন্য
CREATE USER,ALTER USER, এবংDROP USERব্যবহার করা হয়। ইউজারের কাছে নির্দিষ্ট পারমিশন বা অ্যাক্সেস কন্ট্রোল দেওয়ার জন্যGRANTকমান্ড ব্যবহার করা হয়। - Role Management: Roles ব্যবহার করে ইউজারদের অ্যাক্সেস কন্ট্রোল সহজে পরিচালনা করা হয়।
CREATE ROLE,GRANT,REVOKE, এবংDROP ROLEকমান্ডগুলির মাধ্যমে রোল তৈরি, পরিবর্তন এবং মুছে ফেলা হয়। - Fixed Roles: SQL Server প্রি-ডিফাইন করা Fixed Roles প্রদান করে, যা ডেটাবেসের নিরাপত্তা নিশ্চিত করে।
Read more