2009-06-09 12 views
9

में सर्वर प्रशासक से डेटाबेस की रक्षा कैसे करें हमारे क्लाइंट से हमारे स्थानीय प्रशासकों से भी डेटाबेस की सुरक्षा करने की आवश्यकता है, यहां तक ​​कि उनके स्थानीय प्रशासकों से भी (लेखा परीक्षकों ने उन्हें केवल आवश्यकता दी है)।एसक्यूएल सर्वर

उनकी आवश्यकता में, डेटा की सुरक्षा का मतलब है कि SQL सर्वर व्यवस्थापक तालिका में संग्रहीत संवेदनशील डेटा को पढ़ नहीं सकता है, न ही संशोधित कर सकता है।

हम कर सकता है कि Sql सर्वर 2005 में एन्क्रिप्शन, लेकिन है कि हमारे तीसरे पक्ष ORM के साथ हस्तक्षेप होता है, और यह, अनुक्रमण की तरह, अन्य विपक्ष के साथ आदि

Sql सर्वर 2008 हम TDE इस्तेमाल कर सकते हैं में, लेकिन मैं समझता हूं कि यह समाधान डेटाबेस से पूछताछ के लिए SQL सर्वर व्यवस्थापक अधिकार वाले उपयोगकर्ता के विरुद्ध सुरक्षा नहीं करता है।

क्या इस समस्या का कोई अच्छा अभ्यास या ज्ञात समाधान है?

यह समस्या किसी होस्ट प्रदाता द्वारा होस्ट किए गए एप्लिकेशन के समान हो सकती है, और आप होस्ट व्यवस्थापक से डेटा की रक्षा करना चाहते हैं।

हम Sql सर्वर 2005 या 2008

+2

मैं इस पर एक टैब रख रहा हूं, क्योंकि मुझे नहीं लगता कि ऐसा करने के लिए भी संभव है। –

+1

क्या आप "संरक्षित" से अधिक विशिष्ट हो सकते हैं? क्या आप नहीं चाहते हैं कि वे डीबी में पीआईआई को उदाहरण के लिए देखें या क्या आप उन्हें सेवा रोकने और एमडीएफ फाइल को हटाने से रोकने की कोशिश कर रहे हैं? –

+0

क्या यह तीसरी पार्टी ऐप वाली पहली कंपनी है जो एसक्यूएल सर्वर के लिए अग्रभाग है लेखा परीक्षकों ने यह सिफारिश की है? किसी को व्यवस्थापक होना है। – JeffO

उत्तर

6

यह पिछले fewweeks में एक बहुत कहा गया है का उपयोग कर सकते हैं। जवाब आमतौर पर करने के लिए नीचे उबाल:

(

क) आप आवेदन आप डीबीए

या

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

)

और

ग) व्यापक लेखा परीक्षा करते हैं, तो आप नियंत्रित कर सकते हैं कर अपने व्यवस्थापक क्या कर रहे हैं।

+0

+1 अच्छा सारांश। –

0

यदि आप सर्वर पर व्यवस्थापक समूह में किसी भी डेटाबेस को डेटाबेस तक पहुंचने में सक्षम नहीं होना चाहते हैं, तो सर्वर पर "BUILTIN \ Administrators" उपयोगकर्ता को हटा दें।

हालांकि, सुनिश्चित करें कि आपके पास एक और उपयोगकर्ता है जो सर्वर पर sysadmin है!

+0

हम बिल्टिन \ प्रशासक समूह को हटाते हैं और sysadmin भूमिका में एक डीबीए समूह जोड़ते हैं। हालांकि, हमारे पास हमारे sys admins में विश्वास का एक निश्चित स्तर है क्योंकि कुछ भी वास्तव में उन्हें डीबीए समूह में जोड़ने से रोकता है। – NYSystemsAnalyst

+0

SQL सर्वर 2008 में, BUILTIN \ Administrators डिफ़ॉल्ट रूप से sysadmins नहीं हैं - आपको इंस्टॉल के दौरान उन्हें स्पष्ट रूप से जोड़ना होगा। हालांकि, अगर उनके पास अभी भी वास्तविक बॉक्स तक पहुंच है, तो वे हमेशा सेवा बंद कर सकते हैं, डेटाबेस कॉपी कर सकते हैं और एसक्यूएल 2008 को उनके साथ व्यवस्थापक के रूप में पुनर्स्थापित कर सकते हैं। – Eric

0

एक और तरीका मैंने सुना कि एक कंपनी ने कार्यान्वित किया है लेकिन मैंने यह नहीं देखा है: एक सरकारी निकाय है जो समयबद्ध मुद्रित प्रमाणपत्र जारी करता है। प्रत्येक डीबी परिवर्तन async कतार में भेजा जाता है और इस प्रमाणपत्र के साथ timestamped है और साइट से संग्रहीत है। इस तरह कोई टाइमस्टैंप श्रृंखला तोड़ने के बिना कुछ भी हटा सकता है।

मुझे नहीं पता कि यह वास्तव में गहरे स्तर पर कैसे काम करता है।

1

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

+2

क्या होगा यदि डेटाबेस आपके संगठन में नहीं बल्कि एक होस्टिंग सेवा प्रदाता में रहता है? –

+0

उम्मीद है कि आप केवल अपने एसक्यूएल सर्वर को उन स्थानों पर होस्ट करें जिन पर आप भरोसा करते हैं और यहां तक ​​कि समझौते भी हो सकते हैं। अगर आप उन पर भरोसा नहीं करते हैं तो किसी को भी अपने डीबी पर हाथ न आने दें। – khebbie

3

मेरे पास मेरी टेबल में वेतन जानकारी हो सकती है, और मैं नहीं चाहता कि मेरा विश्वसनीय डीबीए देखना चाहें। उसी समस्या के साथ सामना करने के लिए हमने संकुचित किया है:

1- एसक्यूएल सर्वर के बाहर एन्क्रिप्ट करें, प्रविष्टियों और अपडेट से पहले और चयन के बाद डिक्रिप्ट करें। यानी: .NET एन्क्रिप्शन का उपयोग करना। डाउनसाइड: आप कुछ अनुक्रमण और खोज क्षमताओं को खो देते हैं, जैसे और betweens का उपयोग नहीं कर सकते हैं।

2- तीसरे पक्ष के औजारों (आईओ स्तर पर) का उपयोग करें जो डेटाबेस तक क्रूड को अवरुद्ध करते हैं जब तक कोई पासवर्ड प्रदान नहीं किया जाता है। यानी: www.Blockkk.com डाउनसाइड: आपको अपने सर्वर में स्थापित किसी तृतीय पक्ष टूल पर विश्वास करने की आवश्यकता होगी। यह SQL सर्वर पैच, आदि के साथ नहीं रह सकता है ...

3- एक ऑडिटिंग समाधान का उपयोग करें जो चयन, आवेषण, हटाना इत्यादि का ट्रैक रखेगा ... और सूचित करेगा (ईमेल या ईवेंट लॉग द्वारा) उल्लंघन हुआ। एक नमूना उल्लंघन आपके वेतन तालिका पर एक चुनने वाला एक डीबीए हो सकता है। फिर डीबीए को आग लगाना और सभी वेतन बदलना।

+2

"फिर डीबीए को आग लगें और सभी वेतन बदलें" >> डीबीएसीएउंट -1 == वेतन। राशि * 1.10? –

4

लेखा परीक्षक हमेशा इसके लिए पूछते हैं, जैसे वे अन्य चीजों के लिए पूछते हैं जिन्हें कभी नहीं किया जा सकता है।

आपको क्या करने की ज़रूरत है इसे जोखिम-शमन शर्तों में डाल दें और दिखाएं कि आपके पास कौन से नियंत्रण हैं (जब उपयोगकर्ताओं को प्रशासकों के लिए उन्नत किया जाता है, तो उन्होंने क्या किया और उन्हें बाद में डी-एलिवेट किया गया) पूर्ण रूप से।

मैं एक बार बॉस को कुल सिस्टम रिडंडेंसी के लिए पूछता था कि वह क्या मतलब था या वह कितना भुगतान करने और बलिदान देने के इच्छुक था।

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