2009-09-17 11 views
5

में कौन से अनुमतियां होनी चाहिए ... और उन अनुमतियों को कैसे प्रदान किया जाना चाहिए। मैं 70+ अनुप्रयोगों के साथ एक बड़े आईटी विभाग में काम करता हूं, कुछ SQL सर्वर में और अधिकतर ऑरैकल में। प्रत्येक प्रणाली में प्रोड, क्यूए और देव उदाहरण होता है। हम (मैं एक डेवलपर हूं) ने प्रोड/क्यूए तक आसानी से पहुंच प्राप्त की है, जिसे मैं ठीक हूं। एसक्यूएल सर्वर विकास उदाहरणों में देवों को db_owner दिया जाता है, जो पूरी तरह से ठीक काम करता है। डीवी ऑरैकल डेटाबेस में मुझे कौन सी अनुमतियां होनी चाहिए, इस पर बहस खत्म हो गई है।डेवलपर के पास देव डेटाबेस डेटाबेस

मुझे पता है कि प्रत्येक देवता विकास के लिए अपने वर्कस्टेशन पर अपना स्वयं का उदाहरण चलाने के लिए सबसे अच्छा मामला होगा, लेकिन डेटाबेस के आकार की वजह से इसे एक विकल्प नहीं माना गया है।

मुझे यह भी रुचि है कि इन अनुमतियों को कैसे लागू किया जाना चाहिए। भूमिका के माध्यम से दी गई ऑरैकल अनुमतियां पीएल/एसक्यूएल निष्पादन के दौरान सक्रिय नहीं हैं इसलिए भूमिकाएं (यहां तक ​​कि "डीबीए" भूमिका भी उपयोगी नहीं हैं। यह एक अंतर्निहित खाते (सिस्टम) का उपयोग करके छोड़ देता है या दर्जनों उपयोगकर्ताओं के दर्जनों उपयोगकर्ताओं को बनाता है और प्रत्येक को दर्जनों अनुमतियों को सीधे प्रदान करता है। मेरे दिमाग में सिर्फ देवताओं को लॉग इन करने के लिए सिस्टम बहुत समझ में आ रहा है, लेकिन हमारे डीबीए का दावा है कि यह एक बुरा विचार है।

उत्तर

3

हम डेवलपर्स को केवल एप्लिकेशन खाते तक पहुंच प्रदान करते थे। यह छोटी दुकानों के लिए काम करता है लेकिन डेवलपर्स की संख्या में वृद्धि के रूप में तेजी से हाथ से बाहर हो जाता है। यह स्वयं के खाते (उर्फ स्कीमा) है

  1. आवेदन किया है:

    यहाँ हम अब कर रहे हैं।

  2. डेवलपर्स
  3. डाटा आवेदन स्कीमा
  4. में रहता है हम एक चींटी निर्माण स्क्रिप्ट जो कुछ स्कीमा आप चाहते हैं में कोड का निर्माण करने के लिए है अपने स्वयं के खाते हैं।
    • कोड दृश्य, संकुल, वस्तुओं आदि ..
    • निर्माण स्क्रिप्ट अनुप्रयोग डेटा
  5. डेवलपर्स में परिवर्तन करने के लिए डेवलपर्स के लिए स्पष्ट अधिकार देने के लिए एक संग्रहीत प्रक्रिया को चलाने के लिए एक कदम भी शामिल शामिल हैं उनके स्वयं स्कीमा
  6. खुश होने पर वे इसे सबवर्सन
  7. में जांचते हैं। एप्लिकेशन की देव स्कीमा नए उपवर्तन निर्माण से बनाई गई है।
  8. डेवलपर अपने स्वयं के वातावरण की जांच और पुनर्निर्माण कर सकते हैं।
  9. तालिका संरचनाओं को DDL परिवर्तन डीबीए
    • इन के रूप में अच्छी

यह किसी भी सामने के छोर आवेदन सुनिश्चित को लाभ मिलता है पटकथा जा सकती है, डेटाबेस डेवलपर्स द्वारा लगातार टूटी नहीं है के माध्यम से किया जाता है सब कुछ पुनर्निर्माण।

+0

+1 स्रोत नियंत्रण + निर्माण प्रक्रिया सहित - इस क्षेत्र में कमियों के परिणामस्वरूप कौन नियंत्रित करता है इस पर असहमति – dpbradley

0

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

अपने डीबीए को सुनें, वे आम तौर पर जानते हैं कि वे किस बारे में बात कर रहे हैं।

0

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

1

मुझे लगता है कि वास्तविक वस्तुओं के अपेक्षाकृत कम संख्या में आवेदन खाते हैं। तो एक या अधिक तार्किक अनुप्रयोगों में विशेष ओरेकल उपयोगकर्ता के स्वामित्व वाले टेबल शामिल होते हैं। यह सिस्टम या एसवाईएस द्वारा नहीं होगा, यह उन खातों में से कोई भी नहीं होगा जो कंपनी ओरेकल प्रदान करती है। यह एक ऐसा खाता होगा जो आपके डीबीए ने बनाया था। यदि आप ओरेकल नमूना स्कीमा से परिचित हैं, तो एचआर उपयोगकर्ता एचआर स्कीमा में सभी टेबल का मालिक है जिसमें एचआर एप्लिकेशन के लिए बैक एंड शामिल है।

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

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

0

मेरा समूह लगभग 20 ऐप्स का समर्थन करता है जिनमें से लगभग 20 उनमें से अपना ओरेकल स्कीमा है। हम प्रत्येक डेवलपर की सड़क पर गए हैं स्कीमा का पासवर्ड है और यह सुविधाजनक है। हालांकि, हिंडसाइट में मैं अनुशंसा करता हूं कि प्रत्येक डेवलपर विकसित करने के लिए अपने ओरेकल खाते का उपयोग करें। मुख्य कारण लेखा परीक्षा है।

0

मैं स्वीकार करते हैं कि सबसे अच्छा मामले होगा प्रत्येक देव विकास, के लिए अपने कार्य केंद्र पर अपने स्वयं के उदाहरण चलाने है, लेकिन डेटाबेस के आकार की वजह से इस एक विकल्प नहीं माना गया है।

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

1

यदि आप संग्रहीत पीएल/एसक्यूएल ऑब्जेक्ट्स विकसित कर रहे हैं, तो आपके द्वारा उल्लिखित वस्तुओं पर स्पष्ट अनुदान के रूप में, उन वस्तुओं को स्वामित्व वाली स्कीमा की आवश्यकता है। यदि आपके पास एक एकल 'डेटा' स्कीमा है लेकिन आप अपने व्यक्तिगत स्कीमा में कोड विकसित कर रहे हैं तो आपको डेटा स्कीमा ऑब्जेक्ट्स पर अपने विकास स्कीमा तक पहुंच प्रदान करने की क्षमता प्राप्त करनी चाहिए। आम तौर पर मैं डेटा स्कीमा के लिए उपयोगकर्ता नाम/पासवर्ड की अपेक्षा करता हूं।

सिस्टम विशेषाधिकारों (उदाहरण के लिए CREATE) के संबंध में, मैं तालिका, प्रकार, दृश्य, प्रक्रिया ट्रिगर, SYNONYM बनाने की अपेक्षा करता हूं। आपके द्वारा किए गए कार्यों के आधार पर अन्य उपयुक्त हो सकते हैं (उदाहरण के लिए CONTEXT)। डीबीए डायरेक्ट्री तैयार कर सकता है क्योंकि गलत इस्तेमाल होने पर यह हानिकारक हो सकता है। उनमें से किसी के साथ विशेषाधिकारों के लिए डिट्टो (उदाहरण के लिए किसी भी टेबल को चुनें, किसी भी तालिका को हटाएं)

प्रदर्शन डेटाबेस ट्यूनिंग/सिस्टम निगरानी के लिए, एक dev डेटाबेस SELECT_CATALOG_ROLE पर अच्छा है। यदि डीबीए जोखिम-विपरीत है, तो आपको व्यक्तिगत विचारों पर अनुदान पर बातचीत करनी पड़ सकती है। अपने संस्करण के लिए संदर्भ मार्गदर्शिका के माध्यम से जाएं और आप जो भी उपयोग कर सकते हैं उसके लिए पूछें।