কম্পিউটার

ডেটা কন্ট্রোল ল্যাঙ্গুয়েজ (DCL)

ডেটা কন্ট্রোল ল্যাঙ্গুয়েজ স্ট্রাকচার্ড কোয়েরি ভাষার একটি উপসেট। ডেটাবেস অ্যাডমিনিস্ট্রেটররা ডিসিএল ব্যবহার করে রিলেশনাল ডাটাবেসে নিরাপত্তা অ্যাক্সেস কনফিগার করতে। এটি ডেটা ডেফিনিশন ল্যাঙ্গুয়েজ এর পরিপূরক , যা ডাটাবেস অবজেক্ট যোগ করে এবং মুছে দেয় এবং ডেটা ম্যানিপুলেশন ল্যাঙ্গুয়েজ, যা একটি ডাটাবেসের বিষয়বস্তু পুনরুদ্ধার, সন্নিবেশ এবং সংশোধন করে।

ডিসিএল হল এসকিউএল সাবসেটগুলির মধ্যে সবচেয়ে সহজ, কারণ এটিতে শুধুমাত্র তিনটি কমান্ড রয়েছে:GRANT, REVOKE, এবং DENY৷ একত্রিত, এই তিনটি কমান্ড প্রশাসকদের দানাদার ফ্যাশনে ডাটাবেস অনুমতি সেট এবং সরানোর নমনীয়তা প্রদান করে।

GRANT কমান্ডের সাথে অনুমতি যোগ করা

GRANT কমান্ড একটি ডাটাবেস ব্যবহারকারীর জন্য নতুন অনুমতি যোগ করে। এটির একটি খুব সাধারণ সিনট্যাক্স রয়েছে, যা নিম্নরূপ সংজ্ঞায়িত করা হয়েছে:

GRANT [privilege]
ON [object]
TO [user]
[WITH GRANT OPTION]

আপনি এই কমান্ডের সাথে সরবরাহ করতে পারেন এমন প্রতিটি প্যারামিটারের রানডাউন এখানে রয়েছে:

  • বিশেষাধিকার — হয় কীওয়ার্ড হতে পারে ALL (বিভিন্ন ধরনের অনুমতি প্রদানের জন্য) অথবা একটি নির্দিষ্ট ডাটাবেস অনুমতি বা অনুমতির সেট। উদাহরণগুলির মধ্যে রয়েছে ডেটাবেস তৈরি করুন, নির্বাচন করুন, সন্নিবেশ করুন, আপডেট করুন, মুছুন, কার্যকর করুন এবং ভিউ তৈরি করুন৷
  • অবজেক্ট - যেকোনো ডাটাবেস অবজেক্ট হতে পারে। আপনি এই ধারায় যে ডাটাবেস অবজেক্টটি অন্তর্ভুক্ত করেছেন তার উপর ভিত্তি করে বৈধ বিশেষাধিকার বিকল্পগুলি পরিবর্তিত হয়। সাধারণত, বস্তুটি হয় একটি ডাটাবেস, ফাংশন, সঞ্চিত পদ্ধতি, টেবিল বা ভিউ।
  • ব্যবহারকারী - যেকোনো ডাটাবেস ব্যবহারকারী হতে পারে। আপনি যদি ভূমিকা-ভিত্তিক ডাটাবেস সুরক্ষা ব্যবহার করতে চান তবে আপনি এই ধারাটিতে ব্যবহারকারীর জন্য একটি ভূমিকা প্রতিস্থাপন করতে পারেন৷
  • যদি আপনি ঐচ্ছিক গ্রান্ট বিকল্পের সাথে অন্তর্ভুক্ত করেন GRANT কমান্ডের শেষে ক্লজ, আপনি শুধুমাত্র নির্দিষ্ট ব্যবহারকারীকে SQL স্টেটমেন্টে সংজ্ঞায়িত অনুমতি প্রদান করেন না বরং ব্যবহারকারীকে সেই একই অনুমতি অন্যান্য কে প্রদান করার অনুমতি দেন। ডাটাবেস ব্যবহারকারী। এই কারণে, এই ধারাটি যত্ন সহকারে ব্যবহার করুন৷

উদাহরণস্বরূপ, ধরে নিন আপনি ব্যবহারকারীকে জো মঞ্জুর করতে চান৷ কর্মচারীর থেকে তথ্য পুনরুদ্ধার করার ক্ষমতা HR নামে একটি ডাটাবেসের টেবিল . নিম্নলিখিত SQL কমান্ড ব্যবহার করুন:

GRANT SELECT
ON HR.employees
TO Joe

জো কর্মচারীদের টেবিল থেকে তথ্য পুনরুদ্ধার করতে পারেন. তবে, তিনি অন্য ব্যবহারকারীদের সেই টেবিল থেকে তথ্য পুনরুদ্ধার করার অনুমতি দিতে সক্ষম হবেন না কারণ DCL স্ক্রিপ্টে GRANT বিকল্প ধারা অন্তর্ভুক্ত ছিল না।

ডাটাবেস অ্যাক্সেস প্রত্যাহার করা হচ্ছে

REVOKE কমান্ড পূর্বে এই ধরনের অ্যাক্সেস দেওয়া ব্যবহারকারীর কাছ থেকে ডাটাবেস অ্যাক্সেস সরিয়ে দেয়। এই কমান্ডের সিনট্যাক্স নিম্নরূপ সংজ্ঞায়িত করা হয়েছে:

REVOKE [GRANT OPTION FOR] [permission]
ON [object]
FROM [user]
[CASCADE]

এখানে REVOKE কমান্ডের প্যারামিটারের রানডাউন রয়েছে:

  • অনুমতি — চিহ্নিত ব্যবহারকারীর কাছ থেকে অপসারণের জন্য ডাটাবেস অনুমতিগুলি নির্দিষ্ট করে। নির্দেশটি চিহ্নিত অনুমতির জন্য পূর্বে করা GRANT এবং অস্বীকার উভয় দাবিকেই প্রত্যাহার করে৷
  • অবজেক্ট - যেকোনো ডাটাবেস অবজেক্ট হতে পারে। আপনি এই ধারায় যে ডাটাবেস অবজেক্টটি অন্তর্ভুক্ত করেছেন তার উপর ভিত্তি করে বৈধ বিশেষাধিকার বিকল্পগুলি পরিবর্তিত হয়। সাধারণত, বস্তুটি হয় একটি ডাটাবেস, ফাংশন, সংরক্ষিত পদ্ধতি, টেবিল বা ভিউ।
  • ব্যবহারকারী - যেকোনো ডাটাবেস ব্যবহারকারী হতে পারে। আপনি যদি ভূমিকা-ভিত্তিক ডাটাবেস সুরক্ষা ব্যবহার করতে চান তবে আপনি এই ধারাটিতে ব্যবহারকারীর জন্য একটি ভূমিকা প্রতিস্থাপন করতে পারেন৷
  • এর অনুদানের বিকল্প ধারা অন্য ব্যবহারকারীদের নির্দিষ্ট অনুমতি প্রদানের জন্য নির্দিষ্ট ব্যবহারকারীর ক্ষমতা সরিয়ে দেয়। আপনি যদি অনুদানের বিকল্প অন্তর্ভুক্ত করেন একটি প্রত্যাহার বিবৃতিতে ধারা, প্রাথমিক অনুমতি প্রত্যাহার করা হয় না। এই ধারাটি শুধুমাত্র মঞ্জুর করার ক্ষমতা প্রত্যাহার করে।
  • ক্যাসকেড বিকল্পটি যেকোন ব্যবহারকারীর কাছ থেকে নির্দিষ্ট অনুমতি প্রত্যাহার করে যে নির্দিষ্ট ব্যবহারকারী অনুমতি দিয়েছে।

নিম্নলিখিত কমান্ডটি আগের উদাহরণে জো-কে দেওয়া অনুমতি প্রত্যাহার করে:

REVOKE SELECT
ON HR.employees
FROM Joe

ডাটাবেস অ্যাক্সেস স্পষ্টভাবে অস্বীকার করা

DENY কমান্ড স্পষ্টভাবে একজন ব্যবহারকারীকে একটি নির্দিষ্ট অনুমতি গ্রহণ থেকে বাধা দেয়। এই বৈশিষ্ট্যটি সহায়ক যখন একজন ব্যবহারকারী একটি ভূমিকা বা গোষ্ঠীর সদস্য হয় যাকে একটি অনুমতি দেওয়া হয় এবং আপনি একটি ব্যতিক্রম তৈরি করে সেই স্বতন্ত্র ব্যবহারকারীকে উত্তরাধিকারসূত্রে প্রবেশ করা থেকে আটকাতে চান৷ এই কমান্ডের সিনট্যাক্স নিম্নরূপ:

DENY [permission]
ON [object]
TO [user]

DENY কমান্ডের পরামিতিগুলি GRANT কমান্ডের জন্য ব্যবহৃত প্যারামিটারগুলির সাথে অভিন্ন৷ উদাহরণস্বরূপ, আপনি যদি নিশ্চিত করতে চান যে ম্যাথিউ কখনই কর্মীদের টেবিল থেকে তথ্য মুছে ফেলার ক্ষমতা পাবেন না, নিম্নলিখিত কমান্ডটি জারি করুন:

DENY DELETE
ON HR.employees
TO Matthew

  1. কেন্দ্রীভূত ডাটাবেস ম্যানেজমেন্ট সিস্টেম

  2. এমএস অ্যাক্সেস থেকে SQL সার্ভার ডেটাবেসে ডেটা স্থানান্তর করুন

  3. কিভাবে এক্সেলে একটি ডাটাবেস তৈরি করবেন (সহজ পদক্ষেপ সহ)

  4. কিভাবে একটি ডাটাবেস তৈরি করবেন যা এক্সেল এ স্বয়ংক্রিয়ভাবে আপডেট হয়