আমি সবসময়ই ভেবেছিলাম ব্যবহারকারীর dbo
ডাটাবেসের প্রকৃত মালিক।
এটি (বা কমপক্ষে হওয়া উচিত) সঠিক। যে ব্যবহারকারী নাম "dbo" পরিবর্তন না, এখনো অন্তর্নিহিত জন্য SID যারা ডাটাবেস, কিংবা কে তোমাদের মাধ্যমে হতে হয় নির্মিত তার উপর নির্ভর করে না sp_changedbowner (যদিও, এবং সহ, এসকিউএল সার্ভার 2005) বা ALTER অনুমোদন (এসকিউএল দিয়ে শুরু সার্ভার 2008)।
এই তিনটি ক্ষেত্রেই, রেকর্ডটিতে sys.databases
এমন পরিবর্তনও করা হয় যাতে সেগুলি সিঙ্কে রাখা হয়। যাইহোক, কোনও ডেটাবেস পুনরুদ্ধার করার সময়, অন্য সিস্টেম থেকে বা একই ইনস্ট্যান্স থেকে কিন্তু এমন কোনও ডিবি যা ব্যাক-আপ / বিযুক্ত ছিল সেই 2 টি এসকিউএল কমান্ডগুলির মধ্যে একটিতে মালিক পরিবর্তন করার জন্য কার্যকর করা হয়েছিল, তারপরে পুনরুদ্ধার বা সংযুক্ত করার পরে সেখানে থাকবে এর মধ্যে একটি মেলেনি হতে owner_sid
কলাম sys.databases
এবং "dbo" sid
মধ্যে sys.database_principals
যে ডিবি হবে।
যতদূর আমি অবগত রয়েছি, sys.database_principals
প্রতিটি ডিবিতে রেকর্ডটিই প্রকৃত মালিক, এবং owner_sid
কলামটি sys.databases
রেকর্ড রক্ষণ / সুবিধার বিষয়টি (অস্বীকৃতির অনুরূপ; sys.databases
সিস্টেম ব্যতীত সমস্ত ডিবিতে পৃথক অনুসন্ধান করা প্রয়োজন) প্রতিবার অনুরোধ করা তথ্যটি!) এবং সুরক্ষা পান। এটির জন্য যে জিনিসটি ব্যবহার করা হয় তা হ'ল কোনও সম্ভাব্য ক্ষতিকারক / অবৈধ পুনরুদ্ধার / সংযুক্ত ডিবি সনাক্ত করা সেই রেকর্ডগুলির সাথে মেলে না। এক্সেস SQLCLR অ্যাসেম্বলিজ হিসাবে চিহ্নিত করার চেষ্টা করা হয় EXTERNAL_ACCESS
বা UNSAFE
লোড হবে না যদি এক সক্ষম করার কম নিরাপদ রুট যেতে বেছে নিয়েছেন TRUSTWORTHY
যে হিসাবে "dbo" জন্য SID নির্ভর করে যেমন রয়েছে পারেন যে একটি লগইন মেলে প্রয়োজন EXTERNAL ACCESS ASSEMBLY
বাUNSAFE ASSEMBLY
অনুমতি নেই। এবং যখন এই দুটি সিস্টেম ক্যাটালগ দর্শনের মধ্যে এসআইডি-তে কোনও মিল নেই, তখন কোনটি ব্যবহার করা হবে তা নির্ধারণ করা যায় না এবং কোনও সম্ভাব্য সুরক্ষার সমস্যা হওয়ার জন্য এটি একটি লাল-পতাকা হিসাবে ব্যবহৃত হয়। প্রকৃতপক্ষে, এসকিউএল # এর জন্য ইনস্টলেশন স্ক্রিপ্টে আমি এই অবস্থার জন্য যথাযথ পরিবর্তন আনতে কাউকে সতর্ক করার জন্য পরীক্ষা করে দেখি, যাতে এসকিউএল সার্ভার এটি সম্পর্কে কোনও অভিযোগ করে সে ক্ষেত্রে এটিকে শিকার করতে সময় নষ্ট করতে না হয়।