T-SQL (Transact-SQL) এ GRANT, REVOKE, এবং DENY স্টেটমেন্ট ব্যবহার করে আপনি ব্যবহারকারীদের (users) বা রোলস (roles) এর বিভিন্ন পারমিশন (permissions) নিয়ন্ত্রণ করতে পারেন। এগুলি Access Control এর অংশ এবং আপনার ডেটাবেস সিকিউরিটি নিশ্চিত করতে সাহায্য করে।
1. GRANT (গ্রান্ট)
GRANT স্টেটমেন্ট ব্যবহার করে একটি নির্দিষ্ট ব্যবহারকারী বা রোলকে নির্দিষ্ট ডেটাবেস অবজেক্টের জন্য পারমিশন দেওয়া হয়। এটি ব্যবহারকারীদের ডেটাবেসে কাজ করার অনুমতি প্রদান করে।
সিনট্যাক্স:
GRANT permission_type
ON object_name
TO user_or_role;
permission_type: যে পারমিশনটি আপনি প্রদান করতে চান (যেমন SELECT, INSERT, UPDATE, DELETE, EXECUTE, ইত্যাদি)।object_name: যে টেবিল বা অবজেক্টে আপনি পারমিশন প্রদান করতে চান।user_or_role: যাকে বা যাদের আপনি পারমিশন দিতে চান (ব্যবহারকারী বা রোল)।
উদাহরণ ১: SELECT পারমিশন গ্রান্ট করা:
GRANT SELECT
ON Employees
TO JohnDoe;
এই কমান্ডটি JohnDoe ব্যবহারকারীকে Employees টেবিলের SELECT পারমিশন দেবে, যাতে সে টেবিল থেকে ডেটা দেখতে পারে।
উদাহরণ ২: INSERT এবং UPDATE পারমিশন গ্রান্ট করা:
GRANT INSERT, UPDATE
ON Employees
TO AdminRole;
এই কমান্ডটি AdminRole রোলকে Employees টেবিলের INSERT এবং UPDATE পারমিশন দেবে, যাতে তারা ডেটা যোগ এবং আপডেট করতে পারে।
2. REVOKE (রিভোক)
REVOKE স্টেটমেন্ট ব্যবহার করে পূর্বে দেয়া পারমিশন ফিরিয়ে নেয়া হয়। এটি ব্যবহৃত হয় যখন ব্যবহারকারী বা রোল থেকে পূর্বে প্রদত্ত পারমিশন বাতিল করতে হয়।
সিনট্যাক্স:
REVOKE permission_type
ON object_name
FROM user_or_role;
permission_type: যে পারমিশনটি আপনি ফিরিয়ে নিতে চান।object_name: যে টেবিল বা অবজেক্ট থেকে আপনি পারমিশন বাতিল করতে চান।user_or_role: যাকে বা যাদের থেকে আপনি পারমিশন বাতিল করতে চান।
উদাহরণ ১: SELECT পারমিশন রিভোক করা:
REVOKE SELECT
ON Employees
FROM JohnDoe;
এই কমান্ডটি JohnDoe ব্যবহারকারীর Employees টেবিলের SELECT পারমিশন বাতিল করবে।
উদাহরণ ২: INSERT পারমিশন রিভোক করা:
REVOKE INSERT
ON Employees
FROM AdminRole;
এই কমান্ডটি AdminRole রোলের Employees টেবিলের INSERT পারমিশন বাতিল করবে।
3. DENY (ডেনাই)
DENY স্টেটমেন্ট ব্যবহার করে আপনি নির্দিষ্ট একটি ব্যবহারকারী বা রোলকে কোনো পারমিশন দিতে বাধা সৃষ্টি করতে পারেন, অর্থাৎ, তাদের সেই নির্দিষ্ট পারমিশন অ্যাক্সেস না করার জন্য মানা করা হয়। DENY এর প্রয়োগ GRANT এবং REVOKE এর থেকে বেশি প্রাধান্য পায়। যখন DENY করা হয়, তখন কোনো অবস্থাতেই সেই পারমিশন দেওয়া যাবে না, এমনকি যদি GRANT করা হয়।
সিনট্যাক্স:
DENY permission_type
ON object_name
TO user_or_role;
permission_type: যে পারমিশনটি আপনি নিষিদ্ধ করতে চান।object_name: যে টেবিল বা অবজেক্ট থেকে আপনি পারমিশন নিষিদ্ধ করতে চান।user_or_role: যাকে বা যাদের আপনি পারমিশন নিষিদ্ধ করতে চান।
উদাহরণ ১: DELETE পারমিশন ডেনাই করা:
DENY DELETE
ON Employees
TO JohnDoe;
এই কমান্ডটি JohnDoe ব্যবহারকারীকে Employees টেবিলের DELETE পারমিশন দিবে না, অর্থাৎ সে টেবিল থেকে ডেটা মুছে ফেলতে পারবে না।
উদাহরণ ২: UPDATE পারমিশন ডেনাই করা:
DENY UPDATE
ON Employees
TO AdminRole;
এই কমান্ডটি AdminRole রোলের Employees টেবিলের UPDATE পারমিশন নিষিদ্ধ করবে।
GRANT, REVOKE, এবং DENY এর পার্থক্য
| ফিচার | GRANT | REVOKE | DENY |
|---|---|---|---|
| Purpose | পারমিশন প্রদান করতে। | পূর্বে দেওয়া পারমিশন বাতিল করতে। | নির্দিষ্ট পারমিশন থেকে ব্যবহারকারীকে নিষিদ্ধ করতে। |
| Prioritization | সাধারণত REVOKE এর সাথে কাজ করে। | GRANT এর মাধ্যমে প্রদান করা পারমিশন বাতিল করতে। | DENY স্টেটমেন্ট GRANT এবং REVOKE এর চেয়ে বেশি প্রাধান্য পায়। |
| Effect on Permissions | অনুমতি প্রদান করে। | পূর্বে প্রদত্ত অনুমতি বাতিল করে। | অনুমতি অ্যাক্সেস বন্ধ করে দেয়। |
| Use Case | নতুন পারমিশন দেওয়া। | পূর্বের অনুমতি বাতিল করা। | অনুমতি একেবারে নিষিদ্ধ করা। |
উপসংহার:
GRANT, REVOKE, এবং DENY T-SQL এর পারমিশন ব্যবস্থাপনার গুরুত্বপূর্ণ অংশ। GRANT ব্যবহার করে ব্যবহারকারী বা রোলকে পারমিশন দেওয়া হয়, REVOKE দিয়ে পূর্বে প্রদত্ত পারমিশন বাতিল করা হয়, এবং DENY ব্যবহার করে বিশেষভাবে একটি ব্যবহারকারী বা রোলকে নির্দিষ্ট পারমিশন অপ্রাপ্ত করে দেয়া হয়। এগুলি আপনার ডেটাবেস অ্যাক্সেস সিকিউরিটি এবং ব্যবহারের জন্য অপরিহার্য টুল।
Read more