T-SQL (Transact-SQL) দিয়ে SQL Server-এ সিকিউরিটি সেটআপ করা খুবই গুরুত্বপূর্ণ, বিশেষত যখন আপনি ডেটাবেস অ্যাক্সেস কন্ট্রোল এবং ইউজার পারমিশন নিয়ন্ত্রণ করতে চান। SQL Server-এ সিকিউরিটি সেটআপের জন্য অ্যাকাউন্ট, রোল, পারমিশন, অথেনটিকেশন মেথড, এবং ইনক্রিপশন ব্যবহার করা হয়।
T-SQL দিয়ে আপনি ডেটাবেসের নিরাপত্তা নিশ্চিত করতে পারেন, যেমন:
- ইউজার এবং রোল তৈরি করা
- ইউজারের অ্যাক্সেস কন্ট্রোল
- পারমিশন পরিচালনা করা
- ইনক্রিপশন কনফিগার করা
নিচে T-SQL দিয়ে SQL Server সিকিউরিটি সেটআপ এর কিছু গুরুত্বপূর্ণ দিক আলোচনা করা হলো:
১. SQL Server Authentication Mode সেটআপ
SQL Server-এ দুটি প্রধান অথেনটিকেশন মোড রয়েছে:
- Windows Authentication: এটি শুধুমাত্র Windows ব্যবহারকারীদের জন্য অনুমোদিত।
- SQL Server Authentication: এই মোডে SQL Server-এ একটি নির্দিষ্ট SQL Server Login ব্যবহারকারীর নাম এবং পাসওয়ার্ড ব্যবহার করে লগইন করা হয়।
Windows Authentication Mode সক্রিয় করা:
-- SQL Server Authentication এবং Windows Authentication মোড সক্রিয় করা
ALTER LOGIN [sa] ENABLE;
SQL Server Authentication Mode সক্রিয় করা:
-- SQL Server Authentication মোড সক্রিয় করা
ALTER LOGIN [sa] WITH PASSWORD = 'NewPassword';
২. Login এবং User তৈরি করা
SQL Server-এ ইউজার তৈরি করার জন্য প্রথমে একটি Login তৈরি করতে হয়, তারপর সেটি ডেটাবেসের মধ্যে একটি User হিসেবে সংযুক্ত করতে হয়।
Login তৈরি করা:
-- SQL Server Login তৈরি করা
CREATE LOGIN NewUser WITH PASSWORD = 'StrongPassword';
User তৈরি করা:
-- একটি নির্দিষ্ট ডেটাবেসে User তৈরি করা
USE YourDatabase;
CREATE USER NewUser FOR LOGIN NewUser;
৩. Role এবং Permissions সেট করা
SQL Server-এ Roles ব্যবহার করে আপনি ইউজারদের গ্রুপে বিভক্ত করতে পারেন এবং গ্রুপের জন্য একযোগভাবে পারমিশন সেট করতে পারেন।
SQL Server Roles:
SQL Server এ কিছু বিল্ট-ইন রোল রয়েছে যেমন:
- sysadmin: পুরো সার্ভারের জন্য সর্বোচ্চ পারমিশন।
- db_owner: ডেটাবেসের সমস্ত কার্যক্রম পরিচালনা করতে পারে।
- db_datareader: ডেটাবেসের টেবিল পড়তে পারে।
- db_datawriter: ডেটাবেসের টেবিল লিখতে পারে।
Role Assignment:
-- একটি ইউজারকে একটি রোল দেয়া
USE YourDatabase;
EXEC sp_addrolemember 'db_datareader', 'NewUser';
Custom Role তৈরি করা:
-- একটি কাস্টম রোল তৈরি করা
USE YourDatabase;
CREATE ROLE CustomRole;
EXEC sp_addrolemember 'CustomRole', 'NewUser';
Permissions Assignment:
-- একটি নির্দিষ্ট টেবিলের জন্য পারমিশন দেয়া
GRANT SELECT, INSERT ON dbo.Employees TO NewUser;
৪. Revoke এবং Deny Permissions
- REVOKE: পূর্বে প্রদত্ত পারমিশনকে বাতিল করে, তবে পরবর্তী সময়ে পারমিশন পুনরায় দেওয়ার সুযোগ থাকে।
- DENY: একটি নির্দিষ্ট ইউজারের জন্য একেবারে পারমিশন বাধা দেয়।
Revoke Permissions:
-- একটি ইউজারের SELECT পারমিশন রেভোক করা
REVOKE SELECT ON dbo.Employees FROM NewUser;
Deny Permissions:
-- একটি ইউজারকে কোনো টেবিলের উপর পারমিশন Deny করা
DENY DELETE ON dbo.Employees TO NewUser;
৫. User-এ Specific Column Permissions
আপনি বিশেষ করে কিছু কলামের জন্যও পারমিশন কন্ট্রোল করতে পারেন। যেমন, একটি টেবিলের নির্দিষ্ট কলামের উপর SELECT, UPDATE পারমিশন দেওয়া।
-- একটি নির্দিষ্ট কলামের উপর পারমিশন প্রদান করা
GRANT SELECT, UPDATE (Salary) ON dbo.Employees TO NewUser;
৬. Inactivity Lock (Idle Session Timeout)
SQL Server-এ কোনও ইউজারের সেশন অপ্রয়োজনীয় বা ইনঅ্যাকটিভ হলে তা অটোমেটিকভাবে লক করার জন্য পারামিটার সেট করা যায়, যা সিকিউরিটি বাড়ায়।
-- SQL Server সার্ভারে ইনঅ্যাকটিভ সেশন লক করার জন্য পরামিটার সেট করা
EXEC sp_configure 'user options', 0;
RECONFIGURE;
৭. SQL Server Data Encryption
SQL Server ডেটা ইনক্রিপশন সমর্থন করে, যাতে ডেটাবেসের সংবেদনশীল ডেটা সুরক্ষিত থাকে। এর জন্য Transparent Data Encryption (TDE) ব্যবহার করা যেতে পারে।
TDE সক্রিয় করা:
-- ডেটাবেসে TDE সক্রিয় করা
CREATE DATABASE ENCRYPTION KEY;
ALTER DATABASE YourDatabase SET ENCRYPTION ON;
৮. Auditing:
SQL Server-এ Auditing কার্যক্রমের মাধ্যমে আপনি ডেটাবেসে কে, কখন, কী ধরনের কার্যক্রম করেছে তা ট্র্যাক করতে পারেন।
SQL Server Audit তৈরি করা:
-- SQL Server Audit তৈরি করা
CREATE SERVER AUDIT LoginAudit
TO FILE (FILEPATH = 'C:\SQLAudit\');
ALTER SERVER AUDIT LoginAudit WITH (STATE = ON);
সারাংশ
T-SQL দিয়ে SQL Server-এর সিকিউরিটি সেটআপে বিভিন্ন ধাপ রয়েছে, যার মধ্যে:
- Login এবং User তৈরি করা,
- Roles এবং Permissions ব্যবস্থাপনা করা,
- Encryption এবং Audit কনফিগার করা,
- Authentication Mode কনফিগার করা।
T-SQL এবং SQL Server-এ সিকিউরিটি সেটআপ করার মাধ্যমে আপনি ডেটাবেস অ্যাক্সেস কন্ট্রোল, পারমিশন ম্যানেজমেন্ট, এবং সিকিউরিটি নিশ্চিত করতে পারেন।
Read more