इसे SQL Server 2005 के साथ शुरू होने वाले बॉक्स से बाहर अक्षम कर दिया गया है, जब उन्होंने सतह क्षेत्र कॉन्फ़िगरेशन टूल
, SQL सर्वर को डिफ़ॉल्ट रूप से अधिक सुरक्षित बनाने के प्रयास में। वह उपकरण तब से बंद कर दिया गया है, लेकिन आप अभी भी sp_configure
. एक उदाहरण MSDN पर दिखाया गया है
:
-- To allow advanced options to be changed.
EXEC sp_configure 'show advanced options', 1
GO
-- To update the currently configured value for advanced options.
RECONFIGURE
GO
-- To enable the feature.
EXEC sp_configure 'xp_cmdshell', 1
GO
-- To update the currently configured value for this feature.
RECONFIGURE
GO
(मैंने इस बारे में कई साल पहले ब्लॉग किया था ।)
कारण यह है कि यह एक संभावित सुरक्षा छेद है। यदि आप SQL सर्वर को xp_cmdshell
निष्पादित करने की अनुमति देते हैं
, तो वे सैद्धांतिक रूप से कोई भी . भेज सकते हैं ऑपरेटिंग सिस्टम कमांड वहाँ, किसी भी और सभी सुरक्षा को दरकिनार करते हुए जो आपने सोचा था कि आपके पास है। यह विशेष रूप से समस्याग्रस्त है जब SQL सर्वर सेवा खाता और/या प्रॉक्सी खाते को sysadmin या अन्य स्तरों तक बढ़ा दिया गया है क्योंकि यह केवल उन सटीक चीजों को स्पष्ट रूप से परिभाषित करने से आसान है जो उन्हें करने में सक्षम होना चाहिए।
कमांड-लाइन इंटरैक्शन का समर्थन करने के लिए इसे सक्षम और अक्षम करने के बजाय, ऑपरेटिंग सिस्टम की कार्यक्षमता को उजागर करने का एक लोकप्रिय तरीका है, जबकि अभी भी सुरक्षा पर कुछ नियंत्रण है, ओएस-स्तरीय कार्यक्षमता को लागू करना है जिसे आपको SQL-CLR का उपयोग करने की आवश्यकता है। यहां एक्सेस करने के लिए एक अच्छा प्रारंभिक बिंदु है। सीएलआर के साथ फाइल सिस्टम (हालांकि यदि आप अपने आस-पास खोज करते हैं तो आपको अधिक आधुनिक और संपूर्ण दृष्टिकोण मिलेंगे)।