একই লগইন ব্যবহার করে দুটি ডাটাবেস সংযোগ করার জন্য ২ য় ডাটাবেসের মধ্য দিয়ে যাওয়া আরও সুরক্ষিত?


18

আমাদের নিম্নোক্ত সেটআপ রয়েছে:

  • ডেস্কটপ সফ্টওয়্যার দ্বারা ব্যবহৃত ব্যক্তিগত ডেটা সহ একাধিক উত্পাদন ডাটাবেস
  • একটি পাবলিক ওয়েবসাইটের জন্য একটি ওয়েব ডাটাবেস যার জন্য ব্যক্তিগত ডেটাবেসগুলি থেকে কিছু ডেটা প্রয়োজন
  • একটি মধ্যস্থতাকারী ডাটাবেস যা কয়েকটি ভিউ এবং সঞ্চিত পদ্ধতি রয়েছে যা ব্যক্তিগত ডেটাবেসগুলি থেকে ডেটা টান করে

বর্তমানে ওয়েবসাইট ওয়েব ডেটাবেজে লগইন করে এবং ওয়েব ডাটাবেসটি ডেটা টানতে বা উত্পাদন ডেটাবেসে সঞ্চিত পদ্ধতি কার্যকর করতে মধ্যস্থতাকারী ডাটাবেসের সাথে সংযুক্ত হয়। সমস্ত ডাটাবেস একই এসকিউএল উদাহরণে রয়েছে এবং পুরো প্রক্রিয়াটি একই ব্যবহারকারীর অ্যাকাউন্ট ব্যবহার করে।

ব্যবহারকারীর অ্যাকাউন্টে ওয়েব ডাটাবেস এবং মধ্যস্থতাকারী ডাটাবেসে সম্পূর্ণ অ্যাক্সেস রয়েছে তবে কেবলমাত্র ব্যক্তিগত ভিউ এবং ব্যক্তিগত ডাটাবেসের নির্দিষ্ট ভিউ এবং সঞ্চিত পদ্ধতিতে অ্যাক্সেস করতে পারবেন

এটি কি পাবলিক ডাটাবেসটিকে সরাসরি ব্যক্তিগতগুলির সাথে সংযুক্ত করার চেয়ে আরও সুরক্ষিত?

মনে হয় মধ্যস্থতাকারী ডাটাবেসটি কেবল বিষয়গুলিকে জটিল করার জন্য রয়েছে কারণ সমস্ত লগ-ইন ডাটাবেসে একই লগইন ব্যবহার করা হয় এবং এটি ব্যক্তিগত ডেটাবেসে কেবলমাত্র ভিউ / এসপিগুলির মধ্যে সীমাবদ্ধ রয়েছে। আমি এটি অপসারণ আশা করি।


2
আপনার একটি মধ্যস্থতাকারী আছে; ওয়েবে ডিবিতে proc প্রকল্পগুলি / ভিউগুলি। যতক্ষণ আপনার পার্মসটি সঠিকভাবে সেট করা থাকে ততক্ষণ অতিরিক্ত ডেটাবেসটি কোনও সুরক্ষা জড়িত না বলেই অহেতুক বিমূর্ততার মতো মনে হয়।
বেন ব্রোকা

@ বেনব্রোকা আমি যা ভাবছিলাম তা কিন্তু আমি সম্পূর্ণরূপে অপসারণ করার আগে আমি দ্বিগুণ চেক করতে চেয়েছিলাম
রাহেল

উত্তর:


7

একটি জিনিস এখানে লাফিয়ে:

সম্পূর্ণ প্রক্রিয়াটি লগইন শংসাপত্রগুলির একই সেট ব্যবহার করে

সমস্যা

সুতরাং অনুমানমূলক ইউজারএক্স (এক্সেল ব্যবহার করে কিছু মেটস্যাক, বা আইআইএস অ্যাপপুল আইডেন্টিটি কিনা) কিছু ভিউ এবং কোড দেখতে পারে। এই ভিউগুলি এবং কোডগুলি কোন ডাটাবেসে রয়েছে তা বিবেচনাধীন নয় কারণ ইউজারএক্স যাইহোক 3 টি ডাটাবেসে সেটআপ করা আছে।

যাইহোক, আপনি এইভাবে মালিকানা শৃঙ্খলা হারান।

WebDB.dbo.SomeProcকল বলা যাক PrivateDB.dbo.SomeTable। ইউজারএক্স উভয় বস্তুতে অনুমতি প্রয়োজন। যদি এটি OneDB.WebGUI.SomeProcব্যবহার করা হয় OneDB.dbo.SomeTableতবে কেবল OneDB.WebGUI.SomeProcঅনুমতিগুলির প্রয়োজন। একই মালিকের সাথে রেফারেন্সযুক্ত সামগ্রীর অনুমতিগুলি চেক করা হয় না।

দ্রষ্টব্য: ক্রস ডাটাবেস মালিকানা শৃঙ্খলার দিকে আমি খুব গভীরভাবে দেখিনি । আমি কেবল সরল পুরাতন "মালিকানা শৃঙ্খলা" ভাল জানি

এখন, মতামত অনুসারে আপনার কাছে সত্যিই 2 টি ডাটাবেস রয়েছে যা একত্রিত হতে পারে। 3 নয় যা মূলত নিহিত ছিল তবে মধ্যবর্তী এবং ওয়েব একত্রিত করা যেতে পারে।

অন্যান্য "ব্যক্তিগত" ডাটাবেসগুলি সম্ভবত একত্রিত করা যেতে পারে তবে এটি একটি পৃথক সমস্যা হবে। "একটি ডাটাবেস বা অনেকগুলি" এর পূর্ণ আলোচনার জন্য নীচের লিঙ্কটি দেখুন

সমাধান?

অতিরিক্ত ডাটাবেসগুলি যদি কেবল কোড ধারক হয় তবে স্কিমাগুলি আরও ভাল ধারণা।

আপনি "ডেটাবেস" ব্যবহার করেছেন বলে মনে হচ্ছে এটি যেখানে আপনার "স্কিমা" ব্যবহার করা উচিত (এসকিউএল সার্ভার অর্থে নয়, মাইএসকিউএল অর্থে)। আমার কাছে একটি ওয়েবজিইউআই স্কিমা, একটি সহায়ক বা সাধারণ স্কিমা (ইন্টারমিডিয়েট ডাটাবেস প্রতিস্থাপনের জন্য) এবং ডেস্কটপ স্কিমা থাকবে। এইভাবে আপনি ক্লায়েন্টের উপর ভিত্তি করে অনুমতিগুলি পৃথক করেন এবং কেবল একটি ডেটাবেস থাকে

একটি ডাটাবেসের সাথে ("মালিকানা শৃঙ্খলা" ছাড়াও) আপনি সূচীকরণ দর্শনগুলি বিবেচনা করা শুরু করতে পারেন, স্কেমবাইন্ডিং (আমি সর্বদা এটি ব্যবহার করি) এবং এগুলি পৃথক ডেটাবেসগুলির সাহায্যে করা যায় না

স্কিমা সম্পর্কিত আরও তথ্যের জন্য এই প্রশ্নগুলি দেখুন:

অবশেষে, "লেনদেনের অখণ্ডতার প্রয়োজন নেই" এর উপর ভিত্তি করে পৃথক ডাটাবেসগুলির কোনও কারণ উপস্থিত নেই। এটি ব্যাখ্যা করতে এই প্রশ্নটি দেখুন: একটি নতুন ডেটাবেস বনাম একটি নন-ডিবিও স্কিমা কখন ব্যবহার করবেন সে সম্পর্কে সিদ্ধান্তের মানদণ্ড


ধন্যবাদ. ওয়েব ডেটা পৃথক ডাটাবেসে থাকার কয়েকটি কারণ রয়েছে, তবে সবচেয়ে বড়টি হ'ল প্রকৃতপক্ষে একাধিক বেসরকারী ডাটাবেস রয়েছে এবং ওয়েবটি তথ্য প্রাপ্তির জন্য সঠিক বেসরকারী ডাটাবেসে যাওয়ার জন্য দায়বদ্ধ। আমার মূল উদ্বেগটি খুঁজে বের করছিল যে মধ্যস্থতাকারী ডিবি আসলে সাইটের সুরক্ষায় কিছু যুক্ত করে কারণ আমি এটিকে সরাতে চাই। এখনও পর্যন্ত এটি শোনাচ্ছে এটি জটিলতার অতিরিক্ত স্তর ছাড়া অন্য কিছু যুক্ত করে না।
রাচেল

@ রাচেল: "একাধিক বেসরকারী ডাটাবেস" বিট যে কোনও উত্তরের সাথে যথেষ্ট প্রাসঙ্গিক, বিশেষত
এটির

@ রাচেল: কেন আপনি এই প্রশ্নে "একাধিক বেসরকারী ডিবি" উল্লেখ করেননি? যা সবকিছু পরিবর্তন করে ...; - \
ফ্যাব্রিকিও আরাউজো

@ ফ্যাব্রিকিওআরাউজো এই তথ্যটি অন্তর্ভুক্ত করার জন্য আমি আমার প্রশ্নটি 2 ঘন্টা আগে সম্পাদনা করেছি। আমি কখনই এটি ডাটাবেসের ব্যবস্থাপনার সুরক্ষা, এটির নকশা নয় বলে সুরক্ষা সম্পর্কে জিজ্ঞাসা করছিলাম বলে মনে হয় নি।
রাচেল

1
@ ফ্যাব্রিকিওআরাউজো: প্রয়োজনীয়গুলি নকশাকে সংজ্ঞায়িত করে, তাই সুরক্ষিত হওয়ার আগে একটি নকশা অবশ্যই সঠিক হতে হবে। একটি সুরক্ষিত ভুল নকশা মূল্যহীন - একটি সুরক্ষিত সঠিক নকশা যে কোনও সময় নিরাপদ করা যায়।
ফ্যাব্রিকিও আরাউজো

4

উত্তরটি হল, এটা নির্ভরশীল. যদি ব্যক্তিগত ডাটাবেসটি বাইরের অভ্যন্তরীণ ল্যান (বা কেবল কোনও ভিপিএন এর মাধ্যমে) অ্যাক্সেস না করা হয়, তবে এই স্কিমটি সুরক্ষা যোগ করে কারণ ওয়েবসাইটটির শংসাপত্রগুলি ব্যবহার করে এমন কোনও ব্যক্তির সেই ব্যক্তিগত ডিবি সার্ভারের সীমাবদ্ধ অ্যাক্সেস থাকবে (এবং পেতে আরও কিছু কাজ করতে হবে) আপনার অভ্যন্তরীণ নেটওয়ার্কে - এমন সময় যা অনুপ্রবেশ আবিষ্কার করতে এবং গর্তটি বন্ধ করতে কার্যকর হতে পারে)।

যদি তা না হয় তবে আমি মনে করি না যে এটি জটিলতা বাদে কিছু যুক্ত করে।


সম্পাদনা করুন:

দেখে মনে হচ্ছে আমি আপনার প্রশ্নটি ভুলভাবে পড়েছি, সুতরাং আসুন এখনই সঠিকভাবে বুঝতে পেরেছি কিনা তা দেখুন: IntermDb হ'ল একটি খালি ডাটাবেস কেবল প্রাইভেটডিবিতে সংযোগ করার জন্য বা এটি এমন একটি ডিবি যার নিজস্ব দৃষ্টিভঙ্গি / পদ্ধতি রয়েছে যা ডেটা পুনরুদ্ধারের জন্য প্রাইভেটডিবি'র সাথে সংযোগ করে ?

প্রথম ক্ষেত্রে ডাব্লুটিএফ? ছিঁড়ে ফেলো এটি নিরর্থক, যদি না কেউ অলস উপায়ে প্রাইভেটডিবিতে প্রোফাইল অ্যাক্সেসে এটির অডিট করতে না চান (এবং ওয়েব অ্যাপ্লিকেশন বিকাশকারীদের আরও কঠোর করে তোলে)। এসকিউএল প্রোফাইলার ডিবি_আইডি ব্যবহার করে ফিল্টার করতে পারে ...

দ্বিতীয় ক্ষেত্রে, আমি আমার পূর্ববর্তী উত্তরটি বজায় রাখি।

সম্পাদনা করুন: "একই এসকিউএল ইনস্ট্যান্সের সমস্ত 3 ডাটাবেস এবং 3 টি ডাটাবেসের জন্য ব্যবহৃত লগইন একই হওয়ার কারণে প্রাইভেট ডিবি সরাসরি পাবলিক ডিবিতে সংযুক্ত করার চেয়ে কীভাবে নিরাপদ তা আমি এখনও দেখতে পাই না এবং কেবল অ্যাক্সেস করতে পারি প্রাইভেট ডিবিতে যাই হোক না কেন নির্দিষ্ট দর্শন এবং সঞ্চিত পদ্ধতি "procedures

মধ্যবর্তী মাধ্যম হচ্ছে হানাদার আপনার কোডে খোঁড়াখুঁড়ি করতে হবে যে জানি একটি IntermDB এর existance - এবং এটি এটা জানা যে একটি PrivateDB বিদ্যমান আপনার কোড খোঁড়াখুঁড়ি করতে হবে।

আপনি যদি নিজের প্রাইভেটডিবি আপনার সংস্থার ল্যান / ডাব্লু (যদি সম্ভব হয়) এর অভ্যন্তরীণ অন্য কোনও সার্ভারে রাখেন তবে এটি প্রশাসনের পক্ষে আক্রমণের প্রচেষ্টা সনাক্ত এবং অবরুদ্ধ করতে পর্যাপ্ত সময় দিতে পারে। আপনি যদি প্রতিশব্দ ব্যবহার করেন তবে এই পদক্ষেপটি মসৃণ হওয়ায় আপনার যা কিছু রয়েছে সেগুলি আবার বিদ্যমান কোডে পুনর্নির্মাণ করা ঠিক জায়গায় যেতে হবে।

এছাড়াও আপনি অন্যান্য সুবিধাগুলিও অর্জন করেছেন: যেহেতু প্রাইভেটডিবিতে ডেটা অ্যাক্সেস করার জন্য সমস্ত কোড ইন্টারমডিবি দিয়ে যেতে হবে, তাই কোনও বিকাশকারী এটিকে বাইপাস করার চেষ্টা করতে প্রবৃত্ত হবে না - এবং প্রাইভেটডিবি ডেটার অনুরোধের ডিবি_আইডি হিসাবে এই প্রচেষ্টাটি সহজেই এসকিউএল সার্ভার প্রোফাইলারকে খুঁজে পাওয়া যায় ওয়েব অ্যাপডিবি হবে।


সুরক্ষাটি কি একই রকম হবে না যে আপনি যদি একটি সার্ভারে সর্বজনীন ডিবি এবং অন্যটিতে ব্যক্তিগত একসাথে ছিলেন? সুরক্ষা বাড়াতে সেই স্কিমটিতে তৃতীয় ডাটাবেস যুক্ত কী করে? যদিও আমার পরিস্থিতিতে, সমস্ত 3 টি ডাটাবেস একই এসকিউএল সার্ভারের দৃষ্টান্তে রয়েছে (আমার প্রশ্নের সাথেও এই তথ্যটি যুক্ত করা হয়েছে)
রাচেল

আপনার সম্পাদনার প্রতিক্রিয়া হিসাবে, মাঝারি ডিবিতে এটির নিজস্ব ভিউ এবং সঞ্চিত পদ্ধতি রয়েছে যা ব্যক্তিগত ডিবি থেকে ডেটা ফেরত দেয়। আমি এখনও দেখতে পাচ্ছি না যে একই এসকিউএল ইভেন্টে সমস্ত 3 ডাটাবেস এবং সমস্ত 3 ডাটাবেসের জন্য ব্যবহৃত লগইন একই, এবং কেবলমাত্র নির্দিষ্ট ভিউগুলিতে অ্যাক্সেস করতে পারে সেহেতু এটি কীভাবে প্রাইভেট ডিবি সরাসরি পাবলিক ডিবিতে সংযুক্ত করার চেয়ে আরও সুরক্ষিত? যে কোনও উপায়ে প্রাইভেট ডিবিতে সঞ্চিত পদ্ধতি
রাচেল
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.