Views এর মাধ্যমে Data Security নিশ্চিত করা

SQL এ Views এবং Materialized Views - এসকিউএল সার্টিফিকেশন (SQL Certification) - Database Tutorials

305

Views হল SQL-এ একটি ভার্চুয়াল টেবিল যা ডেটাবেসের একটি বা একাধিক টেবিল থেকে নির্বাচিত ডেটা প্রদর্শন করে, তবে এটি মূল টেবিলের ডেটাকে পরিবর্তন করে না। Views মূলত ডেটার একটি নির্দিষ্ট অংশ বা ফিল্টারকৃত ডেটা প্রদর্শন করার জন্য ব্যবহার করা হয়। Views এর মাধ্যমে ডেটা সুরক্ষা (Data Security) নিশ্চিত করা সম্ভব, কারণ এটি ব্যবহারকারীদের সম্পূর্ণ টেবিলের ডেটা অ্যাক্সেস করতে দেয় না, বরং শুধুমাত্র প্রয়োজনীয় ডেটা প্রদর্শন করে।

Views-এর মাধ্যমে Data Security নিশ্চিত করতে হলে, নির্দিষ্ট ক্ষেত্রে নিম্নলিখিত কৌশলগুলি ব্যবহার করা যেতে পারে:


১. Data Masking (Sensitive Data Hide করা)

ডেটাবেসে সংবেদনশীল তথ্য যেমন পাসওয়ার্ড, ক্রেডিট কার্ড নম্বর, সামাজিক সিকিউরিটি নম্বর ইত্যাদি থাকে, যা সাধারণভাবে সরাসরি প্রদর্শন করা উচিত নয়। একটি View তৈরি করে শুধুমাত্র প্রয়োজনীয় কলাম বা ডেটা প্রকাশ করা যায় এবং বাকি অংশ গোপন রাখা যায়।

উদাহরণ:

ধরা যাক, একটি employees টেবিল আছে এবং আপনি চান যে, শুধুমাত্র কর্মচারীর নাম, আইডি এবং পদের তথ্য দেখা যাক, তবে তাদের পাসওয়ার্ড গোপন রাখা হোক।

CREATE VIEW employee_info AS
SELECT employee_id, name, position
FROM employees;

এখন, employee_info ভিউটি ব্যবহারকারীদের পাসওয়ার্ড ছাড়া কর্মচারীদের আইডি, নাম এবং পদ দেখানোর অনুমতি দেবে।


২. Role-based Data Access Control (ভূমিকা অনুযায়ী ডেটা অ্যাক্সেস)

SQL Views ব্যবহার করে আপনি Role-based Access Control (RBAC) বাস্তবায়ন করতে পারেন। RBAC হল এমন একটি কৌশল যেখানে নির্দিষ্ট ব্যবহারকারীদের নির্দিষ্ট ভূমিকার ভিত্তিতে ডেটা অ্যাক্সেস অনুমতি দেওয়া হয়। Views ব্যবহার করে, আপনি ভিন্ন ভিন্ন ব্যবহারকারীদের জন্য ডেটার বিভিন্ন অংশ তৈরি করতে পারেন।

উদাহরণ:

ধরা যাক, আপনার ডেটাবেসে দুটি ভূমিকা রয়েছে: HR Manager এবং Regular EmployeeHR Manager-এর জন্য আপনি একটি View তৈরি করবেন যা সমস্ত কর্মচারী সম্পর্কিত তথ্য দেখাবে, কিন্তু Regular Employee-এর জন্য আপনি শুধু তাদের নিজের তথ্যই দেখতে পারবেন।

-- HR Manager এর জন্য View
CREATE VIEW hr_employee_info AS
SELECT employee_id, name, position, salary
FROM employees;

-- Regular Employee এর জন্য View
CREATE VIEW employee_info AS
SELECT employee_id, name, position
FROM employees
WHERE employee_id = CURRENT_USER();

এখানে CURRENT_USER() ফাংশনটি ব্যবহারকারী যারা লগইন করেছেন তাদের ID অনুযায়ী ডেটা ফিরিয়ে দেবে, ফলে তারা শুধুমাত্র নিজের তথ্য দেখতে পারবেন।


৩. Sensitive Data Filtering

View ব্যবহার করে ডেটাবেসের সেনসিটিভ তথ্যকে সরিয়ে ফেলা এবং শুধুমাত্র নিরাপদ ডেটা প্রদর্শন করার মাধ্যমে Data Filtering করা যায়। এটি বিশেষত ব্যবহারকারীদের নির্দিষ্ট ডেটার এক্সেস সীমাবদ্ধ করতে সহায়ক।

উদাহরণ:

যেমন, আপনি যদি কর্মচারীদের salary তথ্য গোপন রাখতে চান তবে আপনি একটি View তৈরি করতে পারেন যা শুধু name, position এবং hire_date দেখাবে, কিন্তু salary গোপন রাখবে।

CREATE VIEW employee_overview AS
SELECT employee_id, name, position, hire_date
FROM employees;

এখন employee_overview ভিউটির মাধ্যমে ব্যবহারকারীরা শুধুমাত্র নাম, পদ এবং নিয়োগ তারিখ দেখতে পাবে, কিন্তু তারা salary বা অন্যান্য সংবেদনশীল তথ্য অ্যাক্সেস করতে পারবে না।


৪. Limiting Data Visibility by Department or Region

Views ব্যবহার করে আপনি ডেটা অ্যাক্সেস আরও সীমিত করতে পারেন, যাতে ব্যবহারকারী কেবল তাদের জন্য প্রাসঙ্গিক ডেটা দেখতে পান। উদাহরণস্বরূপ, যদি আপনি একটি বৃহৎ সংস্থার ডেটাবেসে বিভিন্ন বিভাগ বা অঞ্চলের জন্য আলাদা ডেটা অ্যাক্সেস দিতে চান, তবে আপনি প্রতিটি বিভাগের জন্য পৃথক ভিউ তৈরি করতে পারেন।

উদাহরণ:

ধরা যাক, একটি employees টেবিল আছে, যেখানে কর্মচারীদের বিভাগের ভিত্তিতে ডেটা সংরক্ষিত রয়েছে। আপনি Sales বিভাগের কর্মচারীদের তথ্য দেখতে একটি ভিউ তৈরি করতে পারেন।

CREATE VIEW sales_employee_info AS
SELECT employee_id, name, position
FROM employees
WHERE department = 'Sales';

এখন sales_employee_info ভিউ ব্যবহারকারী শুধুমাত্র Sales বিভাগের কর্মচারীদের তথ্য দেখতে পাবেন।


৫. Read-Only Views

Views এর মাধ্যমে Read-only Access প্রদান করা সম্ভব, যাতে ব্যবহারকারীরা ডেটা দেখতে পারেন কিন্তু পরিবর্তন করতে পারবেন না। এই ধরনের Views সাধারণত ডেটা অ্যাক্সেস সুরক্ষিত করার জন্য ব্যবহৃত হয়।

উদাহরণ:

যদি আপনি চান যে শুধুমাত্র ডেটা দেখার জন্য একটি ভিউ তৈরি করা হোক এবং পরিবর্তন না করা হোক, তবে এই ধরনের একটি View তৈরি করা যেতে পারে:

CREATE VIEW read_only_employee_info AS
SELECT employee_id, name, position, salary
FROM employees;

এখন, যদি ব্যবহারকারী read_only_employee_info ভিউয়ের মাধ্যমে ডেটা অ্যাক্সেস করে, তারা শুধুমাত্র ডেটা দেখতে পারবেন, কিন্তু ডেটাতে কোন পরিবর্তন করতে পারবেন না।


উপসংহার:

SQL Views ব্যবহার করে আপনি ডেটাবেসে সুরক্ষা এবং ডেটার অ্যাক্সেস কন্ট্রোল নিশ্চিত করতে পারেন। ভিউয়ের মাধ্যমে আপনি:

  • Sensitive Data গোপন রাখতে পারেন।
  • Role-based access নিয়ন্ত্রণ করতে পারেন।
  • ডেটার visibility সীমিত করতে পারেন।
  • Read-only অ্যাক্সেস প্রদান করতে পারেন।

Views ব্যবহার করে আপনি ডেটা অ্যাক্সেসের গোপনীয়তা এবং নিরাপত্তা নিশ্চিত করতে পারেন, যা ডেটাবেস ব্যবস্থাপনার জন্য একটি গুরুত্বপূর্ণ টুল।

Content added By
Promotion

Are you sure to start over?

Loading...