2008-10-31 14 views
20

में ऑब्जेक्ट्स के लिए मालिक डिफ़ॉल्ट रूप से, ऑब्जेक्ट (टेबल, संग्रहित प्रक्रियाएं, आदि) को डीबीओ मालिक/स्कीमा के साथ स्थापित किया जाता है (मुझे लगता है कि एमएस एसक्यूएल 2000 इसे मालिक कहते हैं, जबकि एमएस एसक्यूएल 2005 इसे स्कीमा कहते हैं)स्कीमा, एमएस एसक्यूएल

मालिक/स्कीमा वास्तव में डेटाबेस में एक भूमिका या उपयोगकर्ता है। मैंने हमेशा डीबीओ का डिफॉल्ट छोड़ दिया है, लेकिन मैंने हाल ही में माइक्रोसॉफ्ट ट्रेनिंग किताबों में कुछ उदाहरण देखे हैं, जहां उनकी कुछ टेबल & संग्रहीत प्रक्रियाओं के अलग-अलग मालिक/स्कीमा थे। ऐसा करने के लिए फायदेमंद कब और क्यों?

+1

SQL 2000 और SQL 2005 को भ्रमित न करें, SQL 2000 स्कीमा का सही ढंग से समर्थन नहीं करता है जबकि SQL 2005 करता है। दोनों के बीच भेद महत्वपूर्ण है। –

+0

यदि आप एसक्यूएल 2000 में किसी तालिका के गुणों को देखते हैं तो यह कहता है कि डीबीओ मालिक है। यदि आप एसक्यूएल 2005 के गुणों को देखते हैं तो यह कहता है कि डीबीओ स्कीमा है। यह शायद मेरे भ्रम का हिस्सा – Jeremy

उत्तर

24

जब आपके पास सुरक्षा संबंधी चिंताएं होती हैं तो स्कीमा का उपयोग असाधारण रूप से फायदेमंद होता है।

यदि आपके पास डेटाबेस तक पहुंचने वाले कई एप्लिकेशन हैं, तो हो सकता है कि आप लॉजिस्टिक्स विभाग को मानव संसाधन रिकॉर्ड तक पहुंच न देना चाहें। तो आप अपने सभी मानव संसाधन तालिकाओं को एक घंटे स्कीमा में डालते हैं और केवल एचआर भूमिका में उपयोगकर्ताओं के लिए इसका उपयोग करने की अनुमति देते हैं।

सड़क के नीचे छह महीने, लॉजिस्टिक्स को अब आंतरिक व्यय खाते जानने की जरूरत है ताकि वे ब्लू पेन के इन सभी पैलेट को सही स्थान पर भेज सकें। फिर आप एक संग्रहीत प्रक्रिया बना सकते हैं जो उपयोगकर्ता के रूप में निष्पादित करता है जिसके पास एचआर स्कीमा के साथ-साथ रसद स्कीमा देखने की अनुमति है। लॉजिस्टिक उपयोगकर्ताओं को कभी भी यह जानने की आवश्यकता नहीं है कि एचआर में क्या चल रहा है और फिर भी वे अभी भी अपना डेटा प्राप्त कर रहे हैं।

आप स्कीमा का भी उपयोग कर सकते हैं जिस तरह से cfeduke ने सुझाव दिया है और ऑब्जेक्ट ब्राउज़र में चीजों को समूहबद्ध करने के लिए उनका उपयोग करें। यदि आप ऐसा कर रहे हैं, तो बस सावधान रहें क्योंकि आप व्यक्ति बना सकते हैं। एड्रेस और कंपनी। जब आपको वास्तव में केवल एक डब्बी की आवश्यकता होती है तो पता लगाएं। एड्रेस (मैं आपका उदाहरण खटखटा नहीं रहा हूं, cfeduke, बस इसका उपयोग करके यह बताता हूं कि दोनों पता सारणी एक जैसी हो सकती है या वे अलग हो सकती हैं और वाईएमएमवी)।

+0

बहुत अच्छा है। इस उत्तर पर महान काम। आज मुझे मदद मिली –

+0

@ जेरेम्याह पेस्का: क्यों न केवल स्कीमा में किसी दिए गए भूमिका के लिए वस्तुओं तक पहुंच प्रदान करें, यानी, क्यों न सिर्फ ऐसी भूमिका बनाएं जिससे स्कीमा में सभी वस्तुओं तक पहुंच हो? स्कीमा के माध्यम से ऐसा करके क्या लाभ हैं और भूमिकाओं के माध्यम से नहीं? – MSIS

+0

मैं आपको भूमिकाएं बनाने और ग्रैनुलर सुरक्षा प्रदान करने के लिए उन भूमिकाओं को स्कीमा के साथ संयोजित करने के लिए प्रोत्साहित करता हूं। व्यक्तिगत अनुमतियों का प्रबंधन एक कोर है। लेकिन भूमिकाओं का उपयोग करने से आप उपयोगकर्ताओं को समूहबद्ध कर सकते हैं। स्कीमा आपको संबंधित डेटाबेस ऑब्जेक्ट्स को समूहबद्ध करने की अनुमति देता है। उन दोनों का मिश्रण मेरे लिए एक महान जीत की तरह लगता है। –

3

संगठन

एक देव वातावरण में, वस्तुओं के उत्पादन प्रति dbo हैं लेकिन डेवलपर्स अपने स्वयं के स्कीमा में विकसित कर सकते हैं। फिर कोड प्रोड कॉपी या उनके परिवर्तनों को बहुत आसानी से संदर्भित कर सकता है। उपनाम का उपयोग करके इस तकनीक को और भी सरल बना दिया जा सकता है।


इसके अलावा, एक उत्पादन डेटाबेस कई सिस्टम या उपप्रणाली का समर्थन कर सकता है। आप उन वस्तुओं को समूहित रखने के लिए अलग-अलग स्कीमा का उपयोग कर सकते हैं।

5

एसक्यूएल 2000 में एसक्यूएल 2005 में डेटाबेस उपयोगकर्ताओं के समतुल्य स्कीमा, प्रत्येक स्कीमा एक अलग नामस्थान है जो इसे बनाए गए डेटाबेस उपयोगकर्ता से स्वतंत्र रूप से मौजूद है।

मैं स्कीमा का उपयोग करता हूं जब मुझे सुविधाओं या मॉड्यूल बनाने की आवश्यकता होती है जो बाद में अन्य परियोजनाओं में उपयोग की जाएगी, इसलिए मैं मॉड्यूल द्वारा उपयोग की जाने वाली डेटाबेस ऑब्जेक्ट्स को अलग करने में सक्षम हो जाऊंगा।

4

मैंने पिछले प्रकार के नामस्थानों में स्कीमा का उपयोग किया है ताकि आपके पास पता नामक कई इकाइयां हो सकें ([Person].[Address], [Company].[Address])। इसका लाभ एसक्यूएल मैनेजमेंट स्टूडियो में दृश्य संगठन है, आप एक ही पहचानकर्ता (यानी [dbo].[PersonAddress]) के साथ एक स्कीमा और नामकरण तालिकाओं के तहत सब कुछ डालकर एक ही चीज़ प्राप्त कर सकते हैं।

मैंने उन सभी डीवी मशीनों पर SQL सर्वर डेवलपर संस्करण चलाने से पहले डेवलपर बनाम डेवलपर विकास के लिए भी उपयोग किया है (जब हमारे पास पहले मेरे करियर में केंद्रीकृत विकास डेटाबेस था)।

1

This article SQL Server 2000 से 2005 के परिवर्तनों सहित इसे अच्छी तरह से समझाता है।

संबंधित मुद्दे