আপনি কেবলমাত্র এসকিওএল সার্ভারের সাথে নিবন্ধিত হয়ে যাওয়া সমাবেশগুলিতে উল্লেখ যুক্ত করতে পারেন। যদি তারা নিবন্ধভুক্ত না হয় তবে এগুলি রেফারেন্স যুক্ত সংলাপে প্রদর্শিত হবে না।
একটি ডিএলএল নিবন্ধন করতে আপনাকে বেশ কয়েকটি পদক্ষেপ নিতে হবে, প্রথমে আপনাকে আপনার ডাটাবেসটি পুনরায় কনফিগার করতে হবে:
ALTER DATABASE [MyDatabase] SET TRUSTWORTHY ON;
sp_configure 'clr enabled', 1;
RECONFIGURE;
এটি হয়ে গেলে, এসকিএল সার্ভারটি সিএলআর সক্ষম হয়। এর পরে, আপনাকে আপনার সমাবেশটি নিবন্ধিত করতে হবে:
CREATE ASSEMBLY [MyAssembly] AUTHORIZATION [MyUser]
FROM 'C:\CLR\MyAssembly.dll'
WITH PERMISSION_SET = SAFE
যদি এই শেষ স্ক্রিপ্টটি সঠিকভাবে চলতে থাকে তবে সমাবেশটি এখন নিবন্ধভুক্ত হয়েছে এবং রেফারেন্স যুক্ত করুন সংলাপে উপস্থিত হবে।
তবে আপনাকে যা বিবেচনা করতে হবে তা হ'ল আপনার এসকিএল সার্ভার সিএলআর কনফিগারেশনের অ্যাপ্লিকেশন সুরক্ষা:
- অ্যাসেম্বলি হিসাবে নিবন্ধন করতে পছন্দ করুন
SAFE
, কেবলমাত্র আপনার ব্যতিক্রমী পরিস্থিতিতে EXTERNAL_ACCESS
বা ব্যবহার করা উচিত UNSAFE
।
- পূর্ণ-বিশ্বাস সিএলআরতে (যেমন, এসকিউএল সার্ভার দ্বারা হোস্ট করা সিএলআর নয়) আপনার যা কিছু করা সম্ভব হবে তা আশা করবেন না - এসকিউএলসিএলআর একটি স্যান্ডবক্সযুক্ত রানটাইম।
Assembly.Load()
উদ্দেশ্যমূলকভাবে সীমাবদ্ধ হিসাবে অ্যাসেমব্লিগুলি গতিশীলরূপে চেষ্টা এবং লোড করবেন না ।
- আপনি যদি তৃতীয় পক্ষের গ্রন্থাগারটি ব্যবহারের পরিকল্পনা করেন তবে সর্বজনীন কী সহ স্বাক্ষরিত হওয়া আপনার প্রয়োজন হতে পারে
UNSAFE
।
- কোড এক্সিকিউটিং সার্ভিস চালিত পরিচয়ের প্রসঙ্গে রান চালায় এসকিএল সার্ভার (আমার মনে হয়!)
- হোস্ট করা অ্যাসেম্বলি (যেমন মাধ্যমে
context connection = true;
) তৈরি করা ডেটাবেস অ্যাক্সেস সংযুক্ত ব্যবহারকারীর প্রসঙ্গে চালিত হয়, তাই আপনার গ্রন্থাগারটি আপনার ডেটাতে কী অ্যাক্সেস রয়েছে তা আপনি সচেতন তা নিশ্চিত করতে হবে।