এসকিউএল সিএলআর [বন্ধ] ব্যবহার করে সুরক্ষা বা কর্মক্ষমতা ঝুঁকিপূর্ণ


11

এসকিউএল সার্ভারে সিএলআর ব্যবহার করার ক্ষেত্রে কি কোনও বিশেষ সুরক্ষা বা পারফরম্যান্স ঝুঁকি রয়েছে?


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

1
আমি এই প্রশ্নটি আবার খুলতে ভোট দিয়েছি কারণ আমি বিশ্বাস করি এটি সম্প্রদায়ের সাথে কিছুটা প্রাসঙ্গিকতা রয়েছে। প্রশ্নটি যেমন দাঁড়িয়েছে তেমন একটি বৈধ প্রশ্ন, কারণ সিএলএস সুরক্ষা সেটিংসে ডিবিএর জন্য প্রবেশের স্তরটি বেশ উচ্চ। @ সলোমনরুতজকির উত্তম লিখিত উত্তরটি সিএলআরের সুরক্ষা সেটিংসে একটি ভাল ভূমিকা সরবরাহ করে যা মাইক্রোসফ্ট দ্বারা এই সরল স্তরে সরবরাহ করা হয়নি।
জন ওরফে হট

উত্তর:


10

রিমাস যেভাবে নির্দেশ করেছে, প্রশ্নটি উত্তর পেতে খুব জেনারিক কারণ উত্তর কী কার্যকারিতাটি ব্যবহার করতে হবে এবং কীভাবে এটি ব্যবহার করা হবে তার প্রসঙ্গে নির্ভর করে।

"সুরক্ষা" সম্পর্কিত:

যদি আপনি এমন কিছু সম্পর্কে জিজ্ঞাসা করছেন যা চিহ্নিত একটি অ্যাসেমব্লিতে করা যেতে পারে PERMISSION_SET = SAFE, তবে এমন কোনও সমস্যা নেই যা আমি খুঁজে পেতে সক্ষম হয়েছি। এবং এসকিউএলসিএলআর ব্যবহার করার চেয়ে xp_cmdshellবা আশ্চর্যজনক (যে sp_OA*ব্যঙ্গাত্মক ছিল) প্রকাক্স (বা এমনকি বর্ধিত স্টোরড পদ্ধতিগুলি রয়েছে, তবে আশা করা যায় যে এগুলি আর কেউ তৈরি করছে না ) than

আপনি যদি ব্যবহারিক দিক থেকে "নিরাপদ" অর্থটি বোঝাতে চান তবে দয়া করে এই নিবন্ধটি দেখুন: এসকিউএলসিআর-এর স্তর সিঁড়ি 3: সুরক্ষা (সাধারণ এবং নিরাপদ সমাবেশগুলি) নিখরচায় নিবন্ধকরণ প্রয়োজন।

যদি আপনি এমন কোনও কিছু সম্পর্কে জিজ্ঞাসা করছেন যা চিহ্নিত একটি অ্যাসেমব্লিতে করা যেতে পারে PERMISSION_SET = EXTERNAL_ACCESS, তবে কার্যকারিতা কীভাবে ব্যবহৃত হচ্ছে তার উপর নির্ভর করে আবার অবশ্যই ঝুঁকি রয়েছে। আপনি যদি ডিরেক্টরি এবং ফাইলের নাম (যেমন পঠনযোগ্য কেবল) পড়তে একটি রুটিন লিখেন তবে এটি কী দেখা উচিত এবং কী দেখা উচিত নয় তা কেবল বিষয় just আপনি যদি এমন কোনও কোড লিখছেন যা কোনও ফাইল মুছে ফেলার অনুমতি দেয় তবে ঝুঁকি বাড়ে। কিন্তু কি করতে ঐ বৈদেশিক সম্পদ সঙ্গে সম্পন্ন করা দ্বারা নিয়ন্ত্রিত হয়:

  • আপনি ছদ্মবেশ ব্যবহার করছেন কিনা:
    • কোনও ছদ্মবেশ নয় মানে বাহ্যিক সংস্থান অ্যাক্সেস করা এসকিউএল সার্ভার পরিষেবার অ্যাকাউন্ট হিসাবে "লগ ইন করুন" এর মাধ্যমে সম্পন্ন হয়। যে অ্যাকাউন্টটিতে অ্যাক্সেস রয়েছে তা আপনার এসকিউএলসিএলআর ফাংশন করতে সক্ষম হবে।
    • ছদ্মবেশ ব্যবহারের অর্থ হ'ল এসকিউএল সার্ভারে লগইন যা ফাংশনটি চালাচ্ছে, যদি সেই লগইন কোনও উইন্ডোজ লগিনের সাথে সম্পর্কিত হয় তবে নির্দিষ্ট উইন্ডোজ লগইনকে যা করার অনুমতি দেওয়া হয় তা করতে পারে। যদি এসকিউএল সার্ভারে লগইন হয় একটি এসকিউএল সার্ভার লগইন, তবে ছদ্মবেশ ব্যবহার করার চেষ্টা করার ফলে একটি ত্রুটি ঘটবে।
  • বাহ্যিক সংস্থানগুলিতে কি অনুমতি সেট আপ করা হয়। ফাইল সিস্টেম অ্যাক্সেসের জন্য, এটি এনটিএফএস ড্রাইভে এসিএলগুলির মাধ্যমে নিয়ন্ত্রণ করা হয়।

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

তবে যদি আপনি রেজিস্ট্রিতে কেউ লিখতে ভেবে উদ্বিগ্ন হন, তবে এখনও রেজিস্ট্রি লিখতে এমন কোনও কোড না পেয়ে থাকেন তবে আপনাকে সম্ভবত এই সম্পর্কে উদ্বিগ্ন হওয়ার দরকার নেই ;-)।

যদি আপনি কীভাবে এক্সটার্নাল_এসিসিএসএস এবং ইউএনএসএফই ব্যবহারিক দিক থেকে কাজ করেন এবং অসমমিত্রিক কী TRUSTWORTHY ONবা শংসাপত্র ভিত্তিক লগইন ব্যবহার করে বনাম সেটিং (পছন্দ না করা) এর মধ্যে পার্থক্য দেখতে চান তবে দয়া করে এই নিবন্ধটি দেখুন: এসকিউএলসিআর স্তরের 4 সিঁড়ি: সুরক্ষা (বহিরাগত এবং UNSAFE সমাবেশগুলি) (নিখরচায় নিবন্ধকরণ প্রয়োজন)।

"পারফরম্যান্স" সম্পর্কিত:

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


6

SQLCLR সমাহারগুলি নিরাপত্তা এক্সেস তিন স্তরের দিয়ে ইনস্টল করা যেতে পারে: SAFE | EXTERNAL_ACCESS | UNSAFE। এটি যথেষ্ট নথিভুক্ত হয়েছে, সমাবেশগুলি ডিজাইন করুনCREATE ASSEMBLY এবং ডিজাইনিং করুন :

অ্যাসেম্বলি সুরক্ষা পরিচালনা করা
আপনি কোনও নিয়ন্ত্রণ করতে পারবেন যখন কোনও পরিচালনা পরিষদ পরিচালিত কোডটি চালায় তখন কোনও এন.এইটি কোড অ্যাক্সেস সুরক্ষা দ্বারা NET কোড অ্যাক্সেস সুরক্ষা দ্বারা সুরক্ষিত সংস্থানগুলিতে অ্যাকসেসি কতটা অ্যাক্সেস করতে পারে। আপনি যখন কোনও অ্যাসেম্বলি তৈরি বা সংশোধন করেন তখন তিনটি অনুমতির সেটগুলির মধ্যে একটি নির্দিষ্ট করে আপনি এটি করেন: নিরাপদ, এক্সটার্নাল_অ্যাকসেস, বা ইউএনএসএফই।

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

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

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

অনুমোদিত সিএলআর বৈশিষ্ট্যগুলিতে আরও বিধিনিষেধ রয়েছে এবং কেবল নেট ফ্রেমওয়ার্ক অ্যাসেমব্লির একটি উপসেট সমর্থিত। আবার, লিঙ্কযুক্ত ডকুমেন্টেশন পড়ুন।

পারফরম্যান্সের ক্ষেত্রে, সবচেয়ে গুরুত্বপূর্ণ ধারণাটি মনে রাখতে হবে যে এসকিউএল সার্ভার একটি সমবায় মাল্টি-টাস্কিং পরিবেশ, যখন সিএলআর নেই। SQLCLR কোড আবশ্যক কল Thread.BeginThreadAffinity()যে কোনো সময় এটা (অবরুদ্ধ করা সমেত) কোন চলাকালীন CPU- র হগ। অ্যাডাম মাচানিকের একটি দুর্দান্ত উপস্থাপনা রয়েছে, ডেটা দেখুন, দ্রুত: এসকিউএলসিআর সহ মাইক্রোসফ্ট এসকিউএল সার্ভার পারফরম্যান্স কৌশল

বিষয়টি বিশাল এবং প্রশ্নটি অস্পষ্ট। এসকিউএলসিএলআর কিছু অনন্য কাজ সম্পাদন করতে পারে যা অন্য কোনও বৈশিষ্ট্য মেলে না। এবং এসকিউএলসিএলআর এসকিউএল সার্ভার অস্ত্রাগারগুলির মধ্যে একটি অন্য অস্ত্র যা আপনি নিজের কর্মক্ষমতা বা সুরক্ষা দিয়ে পায়ে গুলি করতে পারেন। ডকুমেন্টেশন পড়ুন।


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