डेटाबेस owner
एक समय पहले (उचित) स्कीमा SQL SQL 2005 में शुरू किया गया था के लिए वापस फेंक का एक सा है।
मूल रूप से एक डेटाबेस मालिक डेटाबेस का डिफ़ॉल्ट dbo
(डेटाबेस मालिक) होता है, डेटाबेस के साथ ही डेटाबेस ऑब्जेक्ट होता है ।
से SQL Server 2000 डॉक्स ...
वह dbo
उपयोगकर्ता है जिसने डेटाबेस में सभी गतिविधियों को करने के लिए अनुमतियाँ निहित की हैं।
SQL सर्वर के पुराने संस्करणों में, जब एक स्कीमा एक ऑब्जेक्ट को "खुद" नहीं कर सकती थी ( या यह कहा जाना चाहिए कि सभी ऑब्जेक्ट, टेबल, व्यू, आदि के स्वामित्व थे dbo
और कोई अन्य स्कीमा नहीं थे ) यह एक के लिए आवश्यक था "उपयोगकर्ता" इसे स्वयं करने के लिए ... यह यह कहे बिना जाना चाहिए कि कुछ को डेटाबेस की आवश्यकता क्यों है (या सामान्य रूप से अनुमतियाँ बल्कि मुश्किल होगी।)
इसलिए, SQL सर्वर (या उन्नत डेटाबेस) के पुराने संस्करणों में तकनीकी रूप से यह "फू" तालिका नहीं थी यह dbo
मालिक होने के साथ "dbo.Foo" तालिका थी ।
SQL सर्वर 2005 के आगमन के साथ आपके पास स्कीमा स्वामित्व वाली डेटाबेस ऑब्जेक्ट हो सकते हैं जैसे कि आपके पास "बार" नाम का एक स्कीमा है और "फू" नाम की तालिका ... यह इस bar.Foo
प्रकार है ...
SELECT * FROM bar.Foo WHERE etc = 'blah`;
मुश्किल हिस्सा यह इस तथ्य के साथ आता है कि डेटाबेस बनाने वाला उपयोगकर्ता स्वचालित रूप से मालिक के रूप में सेट होता है जो कर्मचारी के साथ मुद्दों को आगे बढ़ाता है, आदि।
इसलिए इसे या तो sa
खाते में परिवर्तित करना सबसे अच्छा अभ्यास है , या शायद (मेरे अनुभव में) एक डोमेन खाते के लिए जिसे किसी संगठन के ऑप्स / आईटी टीम द्वारा प्रशासित किया जा सकता है।
यह लेख चीजों को करने के पुराने "मालिक" तरीके और नए "स्कीमा" आधारित स्वामित्व प्रणाली के बीच अंतर को विराम देता है।
मालिकों और स्कीमा के बीच के अंतर को समझने के लिए, आइए कुछ समय वस्तु स्वामित्व की समीक्षा करने में व्यतीत करें। जब कोई ऑब्जेक्ट SQL Server 2000 या उससे पहले बनाया जाता है, तो ऑब्जेक्ट का स्वामी होना चाहिए। ज्यादातर समय, मालिक "dbo" है, जिसे डेटाबेस के मालिक के रूप में भी जाना जाता है।