আজকে আমাদের আলোচনার বিষয় – Database রক্ষাকরণ যা অধ্যায়-৬ এর ডাটাবেস ম্যানেজমেন্ট সিস্টেম এ অন্তর্ভুক্ত। এটি চার বছর মেয়াদি কোর্সের আলোকে লেখা হয়েছে। ডাটাবেস ম্যানেজমেন্ট সিস্টেমের বিভিন্ন ইংরেজি বই অনুসরণ করেই রচনা করা হয়েছে। ইঞ্জিনিয়ারিং বিষয়ের যে-কোন বই সম্পূর্ণরূপে বাংলা ভাষায় রচনা করা সম্ভব নয়। এজন্যে কিছু কিছু ইংরেজি শব্দকে বাংলায় অনুবাদ করা হয়নি। ফলে ছাত্রছাত্রীদের হয়ত কিছুটা অসুবিধা হতে পারে।
Table of Contents
Database রক্ষাকরণ
Database রক্ষাকরণ
Database এবং এটিতে জমাকৃত data উভয়ই অত্যন্ত গুরুত্বপূর্ণ সম্পদ। কাজেই এটি রক্ষা করা খুবই দরকারী একটি কাজ। এজন্য একজন ডাটাবেস ব্যবহারকারী অথবা ডাটাবেস ডিজাইনকারীকে নানাবিধ নিরাপত্তামূলক ব্যবস্থা গ্রহণ করতে হবে। Database কে রক্ষা করার জন্য বিবিধ ধরনের গুরুত্বপূর্ণ নিরাপত্তামূলক ব্যবস্থা প্রচলিত আছে। নিম্নে এদের কয়েকটি উল্লেখ করা হয়-
১। সর্বপ্রথমেই database এর security বা নিরাপত্তা নিশ্চিত করতে হবে। এজন্য database encryption পদ্ধতি ব্যবহার করা যেতে পারে।
২। Database এর ব্যবহারকারীদেরকে বিভিন্ন শ্রেণীতে বিভক্ত করে তাদের শ্রেণী অনুযায়ী Authorization দিতে হবে। ফলে কোন ব্যবহাকারী অনাকাঙ্ক্ষিত operation পরিচালনা করতে পারবে না।
৩। Database ব্যবহারকারীদেরকে authenticate করা যাতে অনাকাঙ্ক্ষিত কোন ব্যক্তি database এ প্রবেশ করতে না পারে।
ফলে Database ধ্বংসের হাত হতে রক্ষা পাবে।
৪। Database এ বিভিন্ন ধরনের Failure এর ক্ষেত্রে সঠিকভাবে recovery যাতে হয় তার জন্য সর্বোত্তম algorithm বা recovery কৌশল ব্যবহার করা।
৫। দুর্ঘটনাজনিত কারণে যাতে database এর কোন ক্ষতি না হতে পারে যেদিকে বিশেষ নজর দিতে হবে। নিম্নে ডাটাবেস রক্ষার বিশদ বিবরণ দেয়া হলঃ
প্রয়োজনীয় তথ্য পাওয়ার জন্য ডাটাকে প্রসেস করে ডাটাবেসে সংরক্ষণ করা হয়। সংরক্ষিত ডাটাকে অননুমোদিত অ্যাকসেস এবং বিদ্বেষপূর্ণ ধ্বংস বা মডিফিকেশন কিংবা দুর্ঘটনাজনিত ক্ষতি বা ধ্বংস থেকেও ডাটাকে রক্ষ করা অত্যাবশ্যক। মোট কথা যেকোন ক্ষতির প্রভাব থেকে ডাটাকে রক্ষা করে ডাটার নিরাপত্তা বিধান করা ডাটাবেস সিস্টেমের অত্যন্ত গুরুত্বপূর্ণ কাজ। তবে বিভিন্ন কারণে ডাটাবেসে ডাটার নিরাপত্তা বিঘ্নিত বা লঙ্ঘিত হতে পারে, যেমন-
১। ডাটাবেসে অননুমোদিত অ্যাকসেস ব্যবস্থা (Inaccessible in database)
২। বিদ্বেষপরায়ণতা (Malicious attack)
৩। দুর্ঘটনাজনিত কারণ (Inadvertent mistake)
১। অননুমোদিত অ্যাকসেস ব্যবস্থাঃ ডাটাবেসে অ্যাকসেসিং পাওয়ার ব্যবস্থা না থাকলে যে কেউ ডাটাবেসে প্রবেশ করার সুযোগ পেয়ে থাকে। ফলে যে কেউ ডাটাবেসে প্রবেশ করে অনিচ্ছাকৃত বা ইচ্ছাকৃতভাবে ডাটার ক্ষতি বা নষ্ট করতে পারে। এ জন্য ডাটাবেসে প্রবেশাধিকার সংরক্ষণ করা হয়। শুধুমাত্র প্রয়োজনীয় অংশে নির্দিষ্ট ব্যক্তির প্রবেশাধিকার, মডিফিকেশন, ডিলিটিং ইত্যাদি করার জন্য অথরাইজেশনের মাধ্যমে ডাটাবেসে ডাটার গোপনীতা ও নিরাপত্তা বজায় রাখা যায়।
সুতরাং অননুমোদিত কোন ব্যক্তি যাতে করে ডাটাবেসে প্রবেশ করে ডাটা পড়তে, মডিফাই করতে এবং ধ্বংস করতে না পারে, তার জন্য ডাটাবেস ম্যানেজমেন্ট নামক প্রোগ্রাম মডিউলে প্রোগ্রাম ডিজাইন করে দিতে হবে।
২। বিদ্বেষপরায়ণতাঃ যে সমস্ত কারণে ডাটাবেসের নিরাপত্তা বা সিকিউরিটি লংঘন করা হয়ে থাকে, বিদ্বেষপরায়ণতা তার মধ্যে। অন্যতম। এটি নিরাপত্তা ভঙ্গের একটি ইচ্ছাকৃত কারণ। পরস্পরের প্রতি হিংসার বশবর্তী হয়েই একজন অনুমোদিত ইউজার এ কাজ করে থাকে। নিম্নে এর বিভিন্ন কারণ উল্লেখ করা হলঃ:
১। বিনা অনুমতিতে ডাটাবেসের ডাটা পড়া। একে ডাটা চুরির সমতুল্য বলা হয়।
২। বিনা অনুমতিতে ডাটাবেসের ডাটা পরিবর্তন বা মডিফিকেশন এবং
৩। বিনা অনুমতিতে ডাটাবেসের ডাটা ধ্বংস করা বা ডেস্ট্রয় করা।
বিদ্বেষপরায়ণতা প্রসূত ডাটার ক্ষতি হতে ব্যাকআপ সিস্টেম থেকে পরিত্রাণের ব্যবস্থা করা যেতে পারে। তবে এ ধরনের ঘটনা। যাতে করে না ঘটে, সেজন্য ডাটাবেস ম্যানেজমেন্ট সিস্টেম বহুলাংশে নিশ্চয়তা প্রদান করে থাকে।
৩। দুর্ঘটনাজনিত কারণঃ ডাটাবসের নিরাপত্তা লংঘনের জন্যে এটিও একটি উল্লেখযোগ্য কারণ। সাধারণতঃ ডাটাবেসের তুল ব্যবহার (misuse) অথবা অপব্যবহারের জন্যেই এ ঘটনা ঘটে। নিম্নে এর বিভিন্ন কারণ উল্লেখ করা হলঃ
১। ট্র্যানজ্যাকশন প্রসেস চলার সময় সিস্টেম ক্র্যাশজনিত কারণে নিরাপত্তা লংঘন হয়।
২। ডাটাবেসে কনকারেন্ট অ্যাকসেস (concuent access) অথবা একই সাথে অধিক জনের প্রবেশজনিত কারণে সৃষ্ট অনিয়ম।
৩। বিভিন্ন কম্পিউটারে ডাটা বিভাজনজনিত কারণে সৃষ্ট অনিয়ম এবং
৪। বিভিন্ন লজিক্যাল এরর (errors) সংঘটিত হওয়ার কারণে নিরাপত্তা লংঘিত হয়।
এছাড়াও বিভিন্ন ধরনের দুর্ঘটনাজনিত কারণে ডাটার ক্ষতি সাধিত হতে পারে। তবে কোন অবস্থাতেই যেন দুর্ঘটনা না ঘটতে পারে, সে জন্য বিভিন্ন পর্যায়ের Administrator-দেরকে সচেতনতা ও সতর্কতা অবলম্বন করার প্রয়োজন। ডাটাবেস ম্যানেজমেন্ট সিস্টেম এ ধরনের নিশ্চয়তা প্রদান করে থাকে। দুর্ঘটনাজনিত কোন কারণে ডাটার ক্ষতি সাধিত হলে ডাটাবেস ম্যানেজমেন্ট সিস্টেমে তা রিকভারী করার ব্যবস্থা বিদ্যমান থাকে।
অতএব ডাটাবেস সিকিউরিটি এমন একটি ব্যবস্থা, যার সাহায্যে ডাটাবেসকে যে কোন অনাকাঙ্ক্ষিত কার্যক্রম থেকে রক্ষা করা যায়। নেটওয়ার্কের সাথে যুক্ত ডাটাবেসকে বাহিরের হস্তক্ষেপ থেকে “Firewall” অথবা “Router” এর মাধ্যমে রক্ষা করা যায়। Internal Network এর নিরাপত্তা বিধান করার দায়িত্ব পড়ে demilitarized zone এর।
এছাড়া একটি নেটওয়ার্ক সিকিউরিটি ডিভাইস (Network security device) যুক্ত করা হয়, যার কারণে মালিশাস ডাটাবেস প্রটোকল বা বিদ্বেষপরায়ণ ডাটাবেস প্রটোকল (Milicious dadabase protocol) প্রবেশ করতে চাইলে সাথে সাথে ডিভাইসটি তা চিহ্নিত বা detect করে সতর্কসঙ্কেত বা alert দিবে। ফলে অবাঞ্ছিতভাবে কেউ database এ প্রবেশ করলে সিস্টেম তা detect করবে। একে বলে ইনট্রুশন ডিটেকশন সিস্টেম (Intrusion detection system)। নেটওয়ার্কভুক্ত ছাড়া সর্বোপরি সিকিউরিটি বা নিরাপত্তা ব্যবস্থা করে ডাটাবেস ম্যানেজার নামক। প্রোগ্রাম মডিউল।
সর্বোপরি নিম্নলিখিত বিষয়ে সচেতনতা ও সতর্কতা অবলম্বন করা প্রয়োজনঃ
১। অননুমোদিতভাবে কেউ যেন ডাটা পড়তে না পারে।
২। অননুমোদিতভাবে কেউ যেন ডাটা মডিফাই করতে না পারে।
৩। অননুমোদিতভাবে কেউ যেন ডাটা নষ্ট বা ধ্বংস করতে না পারে।
৪। দুর্ঘটনাজনিত কারণে যেন ডাটার ক্ষতি না হতে পারে।
ডাটাবেসকে সুরক্ষিত রাখার জন্য ডাটাবেস ম্যানেজমেন্ট সিস্টেমের বিভিন্ন লেভেলে নিরাপত্তা ব্যবস্থা গ্রহণ করা যায়। নিচে তা
উল্লেখ করা হল:
১। অপারেটিং সিস্টেম: এমন সব অপারেটিং সিস্টেম ব্যবহার করতে হবে, যাতে ডাটাবেসে অননুমোদিত ব্যক্তির প্রবেশ প্রতিরোধ করে, যেমন-Linux, Unix ইত্যাদি।
২। ডাটাবেস সিস্টেম: ডাটাবেস সিস্টেমের সব অংশে যাতে সবাই প্রবেশ করতে না পারে, তার জন্য ডাটাবেসের নির্দিষ্ট লেভেলে নির্দিষ্ট ব্যবহারকারীকে অনুমোদন দিতে হবে, যাতে এ অনুমোদিত ব্যবহারকারী শুধুমাত্র অনুমোদিত অংশে প্রবেশ করতে পারে। ফলে ডাটাবেসের নিরাপত্তা ব্যবস্থা সংরক্ষিত থাকবে।
৩। ফিজিক্যাল : কম্পিউটারের ফিজিক্যাল সিস্টেম এর প্রতি লক্ষ্য রাখতে হবে, যাতে কম্পিউটার নষ্ট বা ক্র্যাশ হওয়ার আগে ব্যবস্থা গ্রহণ করা যায়।
৪। হ্যাকার: ডাটাবেস সিস্টেমে হ্যাকার প্রলোভন বা অন্য কোন উপায়ে যাতে ডাটাবেসে প্রবেশ করে পরিবর্তন করতে না পারে, সে ব্যাপারেও সতর্কতা ও নিরাপত্তা ব্যবস্থা গ্রহণ করতে হবে।
অথরাইজেশনের মাধ্যমে ডাটাবেজ রক্ষাকরণ
অথরাইজেশনের বিভিন্ন লেভেল (Levels of authorization)
ডাটাবেস ম্যানেজমেন্ট সিস্টেমে অথরাইজেশন প্রক্রিয়া একটি অত্যন্ত গুরুত্বপূর্ণ বিষয়। নিম্নে অথরাইজেশন এবং তার বিভিন্ন স্তর (lavel) উল্লেখ করা হলঃ
অথরাইজেশনঃ অথরাইজেশন এমন একটি ক্রিয়া, যার সাহায্যে ডাটাবেসের সিকিউরিটি নিয়ন্ত্রণ করা যায়। একজন ডাটাবেস ব্যবহারকারীর বিভিন্ন ধরনের অথরাইজেশন অর্থাৎ একাধিক লেভেলেও একই ব্যবহারকারীর অথরাইজেশন থাকতে পারে। এটি ডাটাবেসের সিকিউরিটির উপর নির্ভরশীল। যখন কুয়েরি প্রসেসর কোন কুয়েরিকে অনুবাদ করে, তখন তা ইউজারের অথরাইজেশন স্তর বিবেচনা করে থাকে।
সুতরাং, বিভিন্ন ধরনের User ডাটাবেসে বিভিন্ন ধরনের অ্যাকসেস ব্যবস্থা নিয়ন্ত্রণ করে থাকে। এ জন্য বিভিন্ন ধরনের ব্যবহারকারীকে ডাটাবেসের বিভিন্ন লেভেলে অনুমোদন দেয়া যেতে পারে। অতএব এ জাতীয় বিভিন্ন ধরনের অনুমোদন ব্যবস্থাকেই অথরাইজেশন।
বলা হয়।
ডাটাবেসে বিভিন্ন ধরনের অথরাইজেশন ব্যবস্থা বা লেভেল আছে, যেমন-
১। রীড অথরাইজেশন (Read Authorization)
২। ইনসার্ট অথরাইজেশন (Insert Authorization)
৩। আপডেট অথরাইজেশন (Update Authorization)
৪। ডিলিট অথরাইজেশন (Delete Authorization)।
অথরাইজেশনের এসব ব্যবস্থাকে প্রিভিলেজ (Privilege) বলা হয়। এ জাতীয় প্রিভিলেজসমূহের মধ্যে ব্যবহারকারীকে সব কয়টি, একটিও না, কিংবা সব অথরাইজেশনের ক্ষমতা দেয়া যেতে পারে।
SQL. এর ক্ষেত্রে উপরোক্ত অথরাইজেশনসমূহের জন্য Select, insert, update এবং delete নামক প্রিভিলেজসমূহ ব্যবহৃত হয়।
নিম্নে অথরাইজেশনের বিভিন্ন লেভেলের বর্ণনা দেয়া হলঃ
১) রীড অথরাইজেশন (Read Authorization) : অথরাইজেশনের এ লেভেলের ক্ষেত্রে user কে শুধুমাত্র ডাটা Read করার
অনুমোদন দেয়া হয়। কিন্তু ডাটা মডিফিকেশন, deleting ইত্যাদির অনুমোদন দেয়া হয় না। SQL লেভেলে select প্রিভিলেজ ব্যবহৃত হয়। Select প্রিভিলেজ ব্যবহারকারীকে ডাটা রীড করার অথরাইজেশন দিয়ে থাকে।
উদাহরণ :
i) রিলেশনাল ডাটাবেস এ account নামক টেবিলে ব্যবহারকারী আনোয়ার ও খোকনকে select অথরাইজেশন দেয়ার জন্য grant i) স্টেটমেন্টটি ব্যবহৃত হয়। এতে উক্ত ব্যবহারকারী দু’জন account নামক টেবিলটি শুধুমাত্র read করতে পারবে। স্টেটমেন্টটি নিম্নরূপ-
grant select on account to anwar, khokan
ii) পূর্বে অথরাইজেশনকৃত আনোয়ার ও খোকনকে বাতিলের জন্য revoke স্টেটমেন্ট ব্যবহৃত হবে। যা নিম্নরূপ-
revoke select on account from Anwar, Khokan
২) ইনসার্ট অথরাইজেশন (Insert Authorization): অথরাইজেশনের এ লেভেলে user কে ডাটাবেসে নতুন ডাটা সংযোজন করার অনুমোদন দেয়া হয়। কিন্তু পূর্বে সংরক্ষিত ডাটার Update করার অনুমোদন দেয়া হয় না।
উদাহরণ :
i) রিলেশনাল ডাটাবেস এ account নামক টেবিলে ব্যবহারকারী অহিদ ও হোসেনকে insert অথরাইজেশন দেয়ার জন্য grant টেস্টমেন্টটি ব্যবহৃত হয়, যা নিম্নরূপ-
grant insert on account to wahid, hossain
ii) পূর্বে অথরাইজেশনকৃত অহিদ ও হোসেনকে বাতিলের জন্য revoke স্টেটমেন্ট ব্যবহৃত হবে, যা নিম্নরূপ-
revoke insert on account from wahid, hossain
৩) আপডেট অথরাইজেশন (Update Authorization) : অথরাইজেশনের এ লেভেলে ব্যবহারকারীকে ডাটা সংশোধন বা আপডেট অনুমোদন দেয়া হয়। কিন্তু ডাটা deleting, inserting করার অনুমোদন দেয়া হয় না।
উদাহরণ :
i) ধরি রিলেশনাল ডাটাবেসে Loan টেবিলের amount অ্যাট্রিবিউটকে আপডেট করার জন্য আনোয়ার ও খোকনকে update অথরাইজেশন দেয়ার জন্য grant স্টেটমেন্টটি ব্যবহৃত হয়। যা নিম্নরূপ-
grant update (amount) on loan to anwar, khokan
ii) পূর্বে অথরাইজেশনকৃত anwar ও khokan কে বাতিলের জন্য revoke স্টেটমেন্ট ব্যবহৃত হয়, যা নিম্নরূপ-
revoke update (amount) on loan to anwar, khokan
৪) ডিলিট অথরাইজেশন (Delete Authorization): অথরাইজেশনের এ লেভেলে ব্যবহারকারীকে ডাটাবেসে ডাটা ডিলেট বা বাদ দেয়ার অনুমোদন দেয়া হয়।
উদাহরণ :
i) ধরি রিলেশনাল ডাটাবেসে ডিলিট করার জন্য আনোয়ার ও অহিদকে delete অথরাইজেশন দেয়ার জন্য grant স্টেটমেন্টটি, যা নিম্নরূপ- হবে
grant delete on account to anwar, wahid
ii) পূর্বে বরাদ্দকৃত অথরাইজেশনকে বাতিলের জন্য revoke স্টেটমেন্টটি ব্যবহৃত হবে।
revoke delete on account from anwar, wahid
উপরোক্ত অথরাইজেশন ছাড়াও আরো কতগুলো অথরাইজেশন আছে, যেগুলো একজন ইউজারকে দেয়া যেতে পারে। নিম্নে এ
অথরাইজেশনের বর্ণনা দেয়া হলঃ
১। Index authorization : অথরাইজেশনের এ লেভেলের সাহায্যে একজন ইউজার ইনডেক্সসমূহ তৈরি এবং ডিলিট করতে পারে।
২। Resource authorization : এ স্তরের সাহায্যে একজন ইউজার ডাটাবেসে নতুন রিলেশন তৈরি করতে পারে।
৩। Alternation authorization : অথরাইজেশনের এ স্তরের সাহায্যে একজন ইউজারকে কোন রিলেশনের অ্যাট্রিবিউট ডিলিট অথবা তাতে নতুন অ্যাট্রিবিউট সংযুক্ত করার অনুমতি দেয়া যায়।
8| Dorp authorization : এর সাহায্যে একজন ইউজারকে ডাটাবেসের রিলেশন ডিলিট করার কর্তৃত্ব দেয়া হয়। উল্লেখ্য, শেষোক্ত অথরাইজেশনের সাহায্যে একজন ইউজার ডাটাবেসের স্কীমা পরিবর্তন করতে পারে।
ডাটাবেস রক্ষার ক্ষেত্রে ইনক্রিপশনের ব্যবহার (Uses of encryption in database security)
ডাটাবেসে অথরাইজেশনের মাধ্যমে নিরাপত্তা ব্যবস্থাকে অত্যন্ত শক্তিশালী করা হয়ে থাকে। তারপরও দেখা যায় যে, নিরাপত্তা লংঘন হয়ে থাকে। বিভিন্ন অননুমোদিত ব্যক্তি ডাটাবেসের অপব্যবহার ও দুর্ঘটনার মাধ্যমে নিরাপত্তা লংঘন (violation) করে থাকে। কিন্তু ডাটাবেসের ক্ষেত্রে এটি মোটেও কাম্য নয়। এ জন্যে নিরাপত্তা ব্যবস্থাকে আরো অধিক শক্তিশালী করার জন্যে ইনক্রিপশন (Encryption) নামক একটি নিরাপত্তা পদ্ধতি DBMS এ ব্যবহার করা হয়ে থাকে।
সুতরাং, যে প্রক্রিয়ায় অ্যালগরিদম ব্যবহার করে ট্রান্সফরমিং ইনফরমেশনকে প্রসেস করে কিছু বিশেষ জ্ঞান সম্পন্ন ব্যক্তি ছাড়া বাকি সবার কাছে পড়তে অযোগ্য বা Unreadable করে তোলে, সে প্রক্রিয়াকে ইনক্রিপশন (encryption) বলে। ইনফরমেশনকে পড়তে বা বুঝতে অযোগ্য করে তোলাকে বলে ইনক্রিপটেড (encrypted)। আবার এ Unreadable ইনফরমেশনকে যে প্রক্রিয়ায় অনুমোদিত ব্যক্তিবর্গের কাছে আবার পুনরায় readable করে তোলাকে ডিক্রিপশন (decryption) বলে। অর্থাৎ ডিক্রিপ্ট এর মাধ্যমে ডাটাকে পুনরায় পড়ারযোগ্য করে তোলা হয়।
অনেক অনেক বছর আগে থেকেই সেনাবাহিনী এবং সরকার (Military and Government) তাদের গোপনীয় কমিউনিকেশনের
জন্য এ ইনক্রিপশন (encryption) পদ্ধতি ব্যবহার করে আসছে। কিন্তু আজকাল সিভিলিয়ন সিস্টেম (Civilian system) বা
সাধারণ জনগণ তাদের বিভিন্ন ইনফরমেশন কমিউনিকেশন করার সময় ইনক্রিপশন পদ্ধতি ব্যবহার করছে।
যেমন- ২০০৭ সালে যুক্তরাষ্ট্র সরকারের জরিপের রিপোর্ট মতে- বর্তমানে ৭১% কোম্পানি তাদের ডাটা ট্রান্সমিট বা ইনফরমেশন কমিউনিকেটের সময় ইনক্রিপশন পদ্ধতি ব্যবহার করছে। ইনক্রিপশন ডাটার মত কম্পিউটার এবং স্টোরেজ ডিভাইসে রক্ষিত ফাইল (যার ফিজিক্যালী সিকিউরিটি ফেল করতে পারে)-কেও অনুমোদিত access প্রতিরোধসহ রক্ষা করবে।
আজকাল নেটওয়ার্ক (যেমন-ইন্টারনেট, ই-কমার্স, মোবাইল, টেলিফোন, ওয়্যারলেস ম্যাক্রোফোন, ওয়্যারলেস ইন্টারকম, ব্লু- টুথ ডিভাইস এবং ব্যাংকের ATM (automatic teller machine) ইত্যাদির মাধ্যমে ডাটা ট্রান্সমিট হয়ে থাকে। এ ট্রান্সমিটের সময় ইনক্রিপশন ডাটাকে নিরাপত্তা দিয়ে থাকে।
ইনক্রিপশন এমন একটি নিরাপত্তা (securty) ব্যবস্থা, যার সাহায্যে ডাটাবেসের মূল ডাটাকে পরিবর্তন করে সংরক্ষণ করা হয়ে থাকে। ফলে মূল ডাটার সাথে এ পরিবর্তিত ডাটার ব্যাপক ব্যবধান সৃষ্টি হয়। এ জন্যে কোন অননুমোদিত ব্যক্তি তা পড়তে পারে না বাবা পড়ে কিছু বুঝতে পারে না। ফলে ডাটাবেসের নিরাপত্তা অনেক বৃদ্ধি পায়। ইনক্রিপ্ট ডাটাকে পড়তে হলে তাকে ডিক্রিপ্ট (decrypt) করতে হবে। এটি ইনক্রিপশনের উল্টো পদ্ধতি।
ডাটাবেসের ডাটাকে ইনক্রিপ্ট করার অনেক পদ্ধতি প্রচলিত আছে। অবশ্য সকল পদ্ধতি সমানভাবে ডাটাবেসের নিরাপত্তা দিতে ■ পারে না। নিরাপত্তার গুরুত্ব অনুসারে যে কোন একটি পদ্ধতি অবলম্বন করা হয়। নিম্নে ইনক্রিপশনের সবচেয়ে একটি সরল টেকনিক (technique) বর্ণনা করা হল।
মনে করি সোনালী ব্যাংকের একটি শাখার নাম হল FARMGATE। এখন নিরাপত্তার জন্য এ FARMGATE শাখাকে ইনক্রিপ্ট করতে হবে। যদি FARMGATE শব্দে ব্যবহৃত প্রতিটি অক্ষরকে তার পরবর্তী অক্ষার দ্বারা পরিবর্তন করা হয় তবে যা পাওয়া যাবে, তা হল “GBSMHBUF”। যদি একজন অননুমোদিত (unauthorized) ব্যক্তি “GBSNHBUF” দেখে, তবে সে ভাববে যে, এটি কোন তথ্য বহন করে না। এভাবে সে তাকে পড়া থেকে বিরত থাকবে। এভাবে DBMS এর সকল ডাটাকেই ইনক্রিপ্ট করে তার নিরাপত্তা ব্যবস্থা অনেক জোরদার করা সম্ভব হবে।
একটি ভালো ইনক্রিপশন পদ্ধতির নিম্নলিখিত গুণাগুণ থাকা অত্যাবশ্যক:
ক) অনুমোদিত ব্যবহারকারীর জন্য সহজে ইনক্রিপ্ট ও ডিক্রিপ্ট করার ব্যবস্থা থাকতে হবে।
খ) এটি অ্যালগরিদমের গোপনীতার উপর নির্ভর করবে না। এটি ইনক্রিপশন কী নামক অ্যালগরিদমের প্যারামিটারের উপর নির্ভর করবে।
গ) অননুমোদিত ব্যবহারকারীর কাছে ইনক্রিপশন কী কঠিন, জটিল ও অপ্রবেশযোগ্য হবে।
ইনক্রিপশন পদ্ধতি হিসেবে ১৯৭৭ সালে ডাটা ইনক্রিপশন স্ট্যান্ডার্ড (Data Encryption Standard-DES) চালু হয়। কিন্তু DES এ কিছু অসুবিধার কারণে পরবর্তী ১৯৮৩, ১৯৮৭ এবং ১৯৯৩ সালে পুনঃসংশোধন করা হয় যা অ্যাডভান্সড অ্যানক্রিপ স্ট্যান্ডার্ড (Advanced Encryption Standard-AES) নামে পরিচিত। ২০০০ সালে AES এর জন্য Rijndael algorithm করা হয়। এ অ্যালগরিদমের সাহায্যে ডাটাবেসে ডাটার নিরাপত্তা ব্যবস্থা ও আধুনিক কম্পিউটার সিস্টেমে এর প্রয়োজনীয়তায়ে যথেষ্ট শক্তিশালী ও সহজবোধ্য করে তুলেছে।
ডাটা রিকভারী (Data recovery)
নষ্ট (damage), ফেল (fail), বিকৃত (corrupted) কিংবা ইনয়্যাকসেসেবল (Inaccessible) সেকেন্ডারি স্টোরেজ মিডিয়া যখন এটিকে আর স্বাভাবিকভাবে access করা যায় না, ইত্যাদি থেকে ডাটাকে উদ্ধার (salvaging) করার প্রক্রিয়াকে ডাটা রিকভারী বলে। রিকভারী টেকনিকসমূহ নিচে উল্লেখ করা হলঃ
১। স্টোরেজ ডিভাইস ফিজিক্যাল ড্যামেইজ এর পর ডাটা রিকভারী টেকনিক (Recovering data after physical damaged):
- (i) হার্ডওয়্যার রিপেয়ার (Hardware repair)
- (ii) ডিস্ক ইমেজিং (Disk emaging)
২। লজিক্যাল ড্যামেইজের পর ডাটা রিকভারী টেকনিক (Recovering data after logical damaged):
- (1) প্রিভেন্টিং লজিক্যাল ড্যামেইজ (Preventing logical damage)
- (ii) কন্সিসটেন্সি চেকিং (Consistency checking)
- (iii) ডাটা কারভিং (Data carving)
৩। ওভাররাইট ডাটা রিকভারী টেকনিক (Recovering overwritten data)
৪। সফ্টওয়্যার দ্বারা রিকভারী টেকনিক (Recovery software):
- (i) বুটেবল (Bootable)
- (ii) কনসিসটেন্সি চেকার (Consistency checker)
- (iii) ফাইল রিকভারী (File recovery)
- (iv) ফরেনসিকস্ (Forensics)
- (v) ইমেজিং টুলস্ (Imaging tools)
৫। লগ বেসড রিকভারী (Log based recovery):
- (i) ডিফারড ডাটাবেস মডিফিকেশন (Deferred database modification)
- (ii) ইমিডিয়েট ডাটাবেস মডিফিকেশন (Immediate database modification)
- (iii) চেক পয়েন্ট (Check point)
৬। শ্যাডো পেজিং (Shadow paging)
৭। রিকভারী উইথ কনকারেন্ট ট্র্যানজ্যাকশন (Recovery with concurrent Transaction)
- i) ইন্টার্যাকশন উইথ কনকারেন্সী কন্ট্রোল (Interaction with Concurrency Control)
- ii) ট্র্যানজ্যাকশন রোলব্যাক (Transaction Rollback)
- iii) চেক পয়েন্ট (Check point)
- iv) রিস্টার্ট রিকভারী (Restart Recovery)।
এছাড়াও কিছু অ্যাডভান্সড রিকভারী টেকনিক বিদ্যমান, যথা-
- i) লজিক্যাল আনডু লগিং (Logical Undo Logging)
- ii) ট্র্যানজ্যাকশন রোলব্যাক (Transaction Rollback)
- iii) চেক পয়েন্ট (Check Point)
- iv) রিস্টার্ট রিকভারী (Restart Recovery)
- v) ফাজি চেক পয়েন্টিং (Fuzzy Check Pointing)
আরও দেখুনঃ