GRANT, REVOKE এবং DENY ডেটাবেস অনুমতি
ডেটা কন্ট্রোল ল্যাঙ্গুয়েজ (ডিসিএল) স্ট্রাকচার্ড কুইরি ল্যাঙ্গুয়েজ (এসকিউএল) এর একটি সাবসেট এবং ডাটাবেস অ্যাডমিনিস্ট্রেটরস রিলেশনাল ডেটাবেসগুলিতে নিরাপত্তা অ্যাক্সেস কনফিগার করার অনুমতি দেয়। এটি ডেটা ডেফিনিশন ভাষা (DDL) সম্পৃক্ত, যা ডাটাবেস বস্তুগুলি যোগ এবং মুছে ফেলতে ব্যবহৃত হয় এবং ডেটা ম্যানিপুলেশন ল্যাংগুয়েজ (ডিএমএল) একটি ডাটাবেসের বিষয়বস্তু পুনরুদ্ধার, ঢোকাতে এবং সংশোধন করতে ব্যবহৃত হয়।
ডিসিএল হল এসকিউএল উপসেটগুলির সবচেয়ে সহজতম কারণ এটি কেবল তিনটি আদেশের অন্তর্ভুক্ত: GRANT, REVOKE এবং DENY। একত্রিত, এই তিনটি কমান্ড প্রশাসকদের একটি অত্যন্ত ঘনঘন ফ্যাশন মধ্যে ডাটাবেস অনুমতি সেট এবং অপসারণ নমনীয়তা দিয়ে প্রদান।
অনুদান কমান্ড দিয়ে অনুমতি যোগ করা
GRANT কমান্ড একটি ডাটাবেস ব্যবহারকারী নতুন অনুমতি যোগ করার জন্য প্রশাসক দ্বারা ব্যবহৃত হয়। এটি একটি খুব সহজ সিনট্যাক্স আছে, নিম্নরূপ সংজ্ঞায়িত:
GRANT [privilege] ON [বস্তু] TO [ব্যবহারকারী] [GRANT OPTION সঙ্গে]এখানে এই কমান্ডের সাহায্যে আপনি প্রতিটি পরামিতি সরবরাহ করতে পারেন:
- বিশেষাধিকার কিওয়ার্ড ALL হতে পারে (বিভিন্ন ধরনের অনুমতি প্রদান করতে পারে) অথবা একটি নির্দিষ্ট ডাটাবেস অনুমতি বা অনুমতির সেট। উদাহরণ তৈরি করুন ড্যাটাব্যাজ, নির্বাচন করুন, ইনসার্ট, আপডেট, ডিলিট, এক্সেক্ট এবং তৈরি করুন দেখুন।
- বস্তু কোনো ডাটাবেস বস্তু হতে পারে। বৈধ উপায়ে বিকল্পগুলি এই ধারায় আপনার অন্তর্ভুক্ত ডাটাবেসের বস্তুর উপর ভিত্তি করে পরিবর্তিত হয়। সাধারণত, বস্তুটি একটি ডাটাবেস, ফাংশন, সঞ্চিত পদ্ধতি , টেবিল বা ভিউ হবে।
- ব্যবহারকারী কোন ডাটাবেস ব্যবহারকারী হতে পারে আপনি যদি ভূমিকা ভিত্তিক ডাটাবেসের নিরাপত্তা ব্যবহার করতে চান তবে আপনি এই উপায়ে ব্যবহারকারীর জন্য একটি ভূমিকা প্রতিস্থাপন করতে পারেন।
- যদি আপনি GRANT কমান্ডের শেষে অনুগ্রহপূর্বক GRANT OPTION ক্লোজ সহ অন্তর্ভুক্ত করেন তবে আপনি কেবলমাত্র নির্দিষ্ট ব্যবহারকারীকে এসকিউএল বিবৃতিতে নির্ধারিত অনুমতি প্রদান করেন না কিন্তু ব্যবহারকারীকে অন্যান্য ডেটাবেস ব্যবহারকারীদের একই অনুমতি প্রদানের ক্ষমতাও প্রদান করেন। এই কারণে, যত্ন সহ এই ধারা ব্যবহার করুন
উদাহরণস্বরূপ, অনুমান করুন আপনি ইউজার জোকে মঞ্জুর করতে চান যা এইচআর এর ডাটাবেস নামক একটি ডাটাবেসের কর্মচারীদের টেবিল থেকে তথ্য উদ্ধারের ক্ষমতা। আপনি নিম্নলিখিত এসকিউএল কমান্ড ব্যবহার করতে পারে:
H.R. কর্মীদের Joe কে নির্বাচন করুনজো এখন কর্মীদের টেবিল থেকে তথ্য পুনরুদ্ধার করার ক্ষমতা থাকবে যাইহোক, অন্যান্য ব্যবহারকারীরা সেই টেবিলের তথ্য পুনরুদ্ধারের অনুমতি দেবে না কারণ আপনি GRANT বিবৃতিতে GRANT OPTION এর ধারাটি অন্তর্ভুক্ত করেননি।
ডেটাবেস অ্যাক্সেস প্রত্যাহার
REVOKE কমান্ডটি ব্যবহার করা হয়েছে এমন একটি ব্যবহারকারীর কাছ থেকে ডাটাবেস অ্যাক্সেস সরিয়ে দেওয়ার জন্য। এই কমান্ডের জন্য সিনট্যাক্স নিম্নরূপ সংজ্ঞায়িত করা হয়:
REVOKE [অনুগ্রহপূর্বক] [অনুমতি] ও [বস্তু] থেকে [ব্যবহারকারী] [কাসকাড]এখানে REVOKE কমান্ডের জন্য প্যারামিটারগুলির উপর রেডাউন আছে:
- অনুমোদিত ব্যবহারকারীর কাছ থেকে সরিয়ে দেওয়ার জন্য ডাটাবেসের অনুমোদন নির্দিষ্ট করে। আদেশটি স্বীকৃত অনুমতির জন্য পূর্বে GRANT এবং DENY দাবিগুলি প্রত্যাহার করে।
- বস্তু কোনো ডাটাবেস বস্তু হতে পারে। বৈধ উপায়ে বিকল্পগুলি এই ধারায় আপনার অন্তর্ভুক্ত ডাটাবেসের বস্তুর উপর ভিত্তি করে পরিবর্তিত হয়। সাধারণত, বস্তুটি একটি ডাটাবেস, ফাংশন, সঞ্চিত পদ্ধতি, টেবিল বা ভিউ হবে।
- ব্যবহারকারী কোন ডাটাবেস ব্যবহারকারী হতে পারে আপনি যদি ভূমিকা ভিত্তিক ডাটাবেসের নিরাপত্তা ব্যবহার করতে চান তবে আপনি এই উপায়ে ব্যবহারকারীর জন্য একটি ভূমিকা প্রতিস্থাপন করতে পারেন।
- উল্লিখিত অনুগ্রহপূর্বক অনুগ্রহপূর্বক অন্যান্য ব্যবহারকারীদের নির্দিষ্ট অনুমতি প্রদানের নির্দিষ্ট ব্যবহারকারীর ক্ষমতা সরিয়ে দেয়। দ্রষ্টব্য : আপনি যদি REVOKE বিবৃতিতে অনুগ্রহপূর্বক অনুচ্ছেদটি অন্তর্ভুক্ত করেন তবে প্রাথমিক অনুমতি প্রত্যাহার করা হয় না । এই ধারাটি কেবল প্রদানের ক্ষমতা প্রত্যাহার করে।
- ক্যাসকেড বিকল্পটি নির্দিষ্ট ব্যবহারকারীদের কাছ থেকে নির্দিষ্ট অনুমতি প্রত্যাহার করে যে নির্দিষ্ট ইউজার অনুমতি প্রদান করে।
উদাহরণস্বরূপ, নিম্নোক্ত কমান্ডটি পূর্ববর্তী উদাহরণে জোকে প্রদত্ত অনুমতি প্রত্যাহার করে:
Joe থেকে এইচআর কর্মচারীদের উপর REVOKE নির্বাচন করুনস্পষ্টভাবে ডেটাবেস অ্যাক্সেস অস্বীকার
DENY কমান্ডটি ব্যবহারকারীকে নির্দিষ্ট অনুমতি প্রাপ্তি স্পষ্টভাবে প্রতিরোধ করতে ব্যবহৃত হয়। এটি সহায়ক যখন একজন ব্যবহারকারী একটি ভূমিকা বা গোষ্ঠীর একজন সদস্য হয় যার অনুমতি দেওয়া হয়, এবং আপনি একটি ব্যতিক্রম তৈরি করে অনুমতি প্রাপ্তি থেকে যে পৃথক ব্যবহারকারীটি প্রতিরোধ করতে চান। এই কমান্ডের জন্য সিনট্যাক্স নিম্নরূপ:
DENY [অনুমতি] উপর [বস্তু] থেকে [ব্যবহারকারী] DENY কমান্ডের প্যারামিটারগুলি GRANT কমান্ডের জন্য ব্যবহৃত হয়।
উদাহরণস্বরূপ, যদি আপনি নিশ্চিত করতে চান যে ম্যাথিউ কর্মচারী সারণি থেকে তথ্য মুছে ফেলার ক্ষমতা পাবেন না, নিম্নলিখিত কমান্ডটি চালান: