FILESTREAM अंदरूनी सूत्र सूचना की खोज में


14

जब Microsoft SQL Server 2012 पर FILESTREAM सुविधा सक्रिय हो जाती है तो SQL सर्वर सिस्टम पर "छिपा हुआ" हिस्सा बना देगा। शेयर निम्नानुसार परिभाषित किया गया है:

Sharename          FILESTREAM_SHARE
Path               \\?\GLOBALROOT\Device\RsFx0320\<localmachine>\FILESTREAM_SHARE
Remark             SQL Server FILESTREAM share
Maximum users      unlimited
Users Caching      Manual caching of documents 
Permissions        NT-AUTHORITY\Authenticated Users, FULL

नाम उस हिस्से का नाम है जिसे आप SQL Server कॉन्फ़िगरेशन प्रबंधक में FILESTREAM को कॉन्फ़िगर करते समय प्रदान करते हैं । लेकिन इसके लिए क्या है?

अब तक

मैं सभी उपलब्ध FILESTREAM प्रलेखन के माध्यम से शुरू में पढ़ा:

... लेकिन इसमें हिस्सेदारी का कोई जिक्र नहीं था और यह क्या करता है या इसके लिए क्या है। आप नाम दर्ज करते हैं और एसक्यूएल सर्वर शेयर के तहत हुड बनाएगा।

FILESTREAM- सक्षम डेटाबेस

जब आप एक FILESTREAM- सक्षम डेटाबेस बनाते हैं, तो डेटाबेस एक फाइलग्रुप का संदर्भ देता है जो एक निर्देशिका (एक अलग ड्राइव पर अनुशंसित) का संदर्भ देता है, जिसका शेयर से कोई लेना-देना नहीं है, जिसे शुरू में FILESTREAM कॉन्फ़िगरेशन के दौरान बनाया गया था।

स्क्रीनशॉट FILESTREAM- सक्षम डेटाबेस स्क्रिप्ट

FILESTREAM- सक्षम डेटाबेस बनाने के लिए स्क्रिप्ट हां, मुझे एहसास है कि सभी रास्ते सी पर हैं :; यह सिर्फ एक उदाहरण है

पॉल रान्डेल एट अल द्वारा श्वेत पत्र। यह पता लगाने के लिए कि ...

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

... आगे दस्तावेज़ (पृष्ठ 14) के साथ वे ले ...

प्रत्येक NTFS वॉल्यूम के लिए एक एकल FILESTREAM फ़ाइल सिस्टम फ़िल्टर ड्राइवर है जिसमें एक FILESTREAM डेटा कंटेनर है, और SQL सर्वर के प्रत्येक संस्करण के लिए एक भी है जिसमें वॉल्यूम पर एक FILESTREAM डेटा कंटेनर है। प्रत्येक फ़िल्टर ड्राइवर उस वॉल्यूम के लिए सभी FILESTREAM डेटा कंटेनरों को प्रबंधित करने के लिए जिम्मेदार है, सभी उदाहरणों के लिए जो SQL सर्वर के किसी विशेष संस्करण का उपयोग करते हैं।

उदाहरण के लिए, एक NTFS वॉल्यूम जो तीन FILESTREAM डेटा कंटेनरों की मेजबानी कर रहा है, प्रत्येक तीन SQL Server 2008 इंस्टेंस के लिए, केवल एक SQL Server 2008 FILESTREAM फ़ाइल सिस्टम फ़िल्टर ड्रायवर होगा।

प्रशन

  1. यह जानना अच्छा है कि SQL सर्वर में सब कुछ अच्छा है और बंधा हुआ है, लेकिन वास्तव में वह क्या करता है? क्या यह तथाकथित "फाइल सिस्टम फिल्टर ड्राइवर" है?
  2. किसी भी प्रमाणित उपयोगकर्ता के रूप में देखकर "शेयर" तक पहुँच प्राप्त कर सकते हैं, सुरक्षा निहितार्थ क्या हैं?
  3. क्या डिवाइस RsFx0320 लचीला फाइल सिस्टम प्रारूप का एक पूर्ववर्ती है जिसे विंडोज सर्वर 2012 के साथ पेश किया गया था?

यदि आप मेरे प्रश्नों के उत्तर दे सकते हैं, तो अच्छा होगा यदि आप एक स्रोत संदर्भ प्रदान कर सकें।

जवाबों:


5

जब Microsoft SQL Server 2012 पर FILESTREAM सुविधा सक्रिय हो जाती है तो SQL सर्वर सिस्टम पर "छिपा हुआ" हिस्सा बना देगा।

यह डिफ़ॉल्ट रूप से ऐसा नहीं करता है, आपको शेयर को सक्षम करने के लिए CHOOSE करना होगा। यह SQL सर्वर कॉन्फ़िगरेशन प्रबंधक के माध्यम से किया जाता है। यदि आप Enable FILESTREAM for file I/O accessशेयर रद्द करते हैं तो शेयर हटा दिया जाएगा।

यहाँ छवि विवरण दर्ज करें

  1. यह जानना अच्छा है कि SQL सर्वर में सब कुछ अच्छा है और बंधा हुआ है, लेकिन वास्तव में वह क्या करता है?

शेयर ग्राहकों (स्थानीय और दूरस्थ) के लिए एक एकल साझा करने के लिए अनुमति देता है फिल्माई गई डेटा तक पहुंच के लिए स्ट्रीमिंग विंडोज़ एपीआई का उपयोग करने के लिए एक साझा स्थान है। यह filestream की पहुंच के लिए SQL सर्वर इंस्टेंस स्तर सेटिंग्स के साथ संयोजन के रूप में काम करता है Full Access Enabled, किसी भी अन्य एक्सेस सेटिंग को स्ट्रीमिंग एपीआई के साथ काम नहीं करना चाहिए।

यहाँ छवि विवरण दर्ज करें

  1. ... क्या यह तथाकथित "फाइल सिस्टम फिल्टर ड्राइवर" है?

नहीं ऐसा नहीं है। यह सिर्फ एक फाइल शेयर है।

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

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

तो, हाँ यह दोनों है और नहीं है फिल्टर ड्राइवर। यह आधा विंडोज़ फाइलशेयर है जिसे एक फ़िल्टर ड्राइवर के माध्यम से उजागर किया जाता है। आप देख सकते हैं कि यह शेयर की पथ संपत्ति है।

get-wmiobject -class Win32_share | where {$_.Description -like 'SQL Server*'} | ft name, path -autosize

2. किसी भी प्रमाणित उपयोगकर्ता के रूप में देखने से "शेयर" तक पहुँच प्राप्त हो सकती है, सुरक्षा निहितार्थ क्या हैं?

आप अनुमतियाँ बदल सकते हैं और सेटिंग्स को ठीक से सेट करने की आवश्यकता है। सुरक्षा निहितार्थ किसी अन्य फ़ाइल शेयर के हैं।

3.Is डिवाइस RsFx0320 लचीला फाइल सिस्टम प्रारूप के लिए एक पूर्ववर्ती है जिसे विंडोज सर्वर 2012 के साथ पेश किया गया था?

नहीं, यह फ़िल्टर ड्राइवर के विशिष्ट संस्करण का नाम है। उदाहरण के लिए, यहां एक सिस्टम है जिसमें 2016 लोड है RsFx0410। ReFS एक फाइल सिस्टम है, यह एक फिल्टर ड्राइवर है जो फाइलसिस्टम और मिनीपॉर्ट ड्राइवर के बीच बैठता है। यह वास्तव में काफी विवादास्पद है कि यह एक विरासत फ़िल्टर ड्राइवर है जैसा कि .10 द्वारा ऊँचाई के अंत में दर्शाया गया है ... हम्म। आप यह भी देखेंगे कि इसकी ऊंचाई काफी कम है , जो आमतौर पर 3rd पार्टी फिल्टर ड्राइवरों के लिए स्वीकार्य नहीं है।

यहाँ छवि विवरण दर्ज करें

यदि आप मेरे प्रश्नों के उत्तर दे सकते हैं, तो अच्छा होगा यदि आप एक स्रोत संदर्भ प्रदान कर सकें।

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


1, 2 और 3 के उत्तर के लिए धन्यवाद। मैं विशेष रूप से फ़िल्टर ड्राइवर के आपके स्पष्टीकरण की सराहना करता हूं। शुरुआत में आपकी टिप्पणी विधिवत रूप से नोट की गई है, लेकिन मुझे पता है कि शेयर केवल तभी बनाया जाएगा जब मैं FILESTESTAM विकल्पों में विकल्प को सक्रिय कर दूंगा। मैंने FILESTREAM कॉन्फ़िगरेशन / सेटिंग्स और इंटरनल सामान के बारे में बड़ी मात्रा में प्रलेखन पढ़ा है।
जॉन उर्फ ​​हॉट 2use

2

यहाँ अपने सवालों पर ले लो:

1. यह जानकर अच्छा लगा कि एसक्यूएल सर्वर में सब कुछ अच्छा और बंधा हुआ है, लेकिन वास्तव में वह क्या करता है? क्या यह तथाकथित "फाइल सिस्टम फिल्टर ड्राइवर" है?

SQL सर्वर फ़ाइल स्ट्रीम एक्सेस सभी के बारे में है, अच्छी तरह से, फ़ाइलों तक पहुंच। शेयर एक फ़ाइल शेयर के माध्यम से उस स्थान को प्रदान करता है।

आप इसे OpenSqlFilestream का उपयोग करके कुछ C # कोड के साथ आसानी से देख सकते हैं

https://docs.microsoft.com/en-us/sql/relational-databases/blob/access-filestream-data-with-opensqlfilestream

जैसा कि आप देख सकते हैं, CreateFile के लिए कोई FILE_SHARE_READ और कोई फ़ाइल जादू नहीं है, कोई फ़ाइलस्ट्रीम नहीं:

try
    {
        if ( (srcHandle = CreateFile(
            srcFilePath,
            GENERIC_READ,
            FILE_SHARE_READ,
            NULL,
            OPEN_EXISTING,
            FILE_FLAG_SEQUENTIAL_SCAN,
            NULL)) == INVALID_HANDLE_VALUE )
            throw szErrMsgSrc;

नोट: जैसा कि कोई स्थानीय सर्वर / शेयर रहित FILESTREAM विकल्प नहीं है - मेरे पास कोई सुराग नहीं है। कुछ लोगों की तरह लगता है कि सुरक्षा के अतिरिक्त स्तर की तरह हो सकता है।

2. किसी भी प्रमाणित उपयोगकर्ता के रूप में देखने से "शेयर" तक पहुँच प्राप्त हो सकती है, सुरक्षा निहितार्थ क्या हैं?

वाह, बहुत बढ़िया सवाल। ऐसा प्रतीत होता है, कि शेयर अनुमतियाँ किसी भी प्रमाणित उपयोगकर्ता के लिए उपलब्ध हैं, लेकिन, अंतर्निहित NTFS अनुमतियों को सुरक्षा को ठीक करना चाहिए। लेकिन, यह मुझे एक सुरक्षा छेद की तरह लगता है। मुझे आगे की जांच करनी होगी कि NTFS की अनुमति कितनी ठीक है, लेकिन मैं निश्चित रूप से सामान्यीकृत फ़ाइल शेयर अनुमतियों को पसंद नहीं कर रहा हूं। Microsoft, सभी "प्रमाणित उपयोगकर्ता" पर आएं? सही या गलत, मुझे लगता है कि Microsoft NTFS की अनुमतियों पर साझा / ध्यान न दें।

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

https://social.technet.microsoft.com/Forums/windowsserver/en-US/bb74fa7c-89bd-476d-88bf-e88cd66618e6/why-is-authenticated-users-in-the-local-users-group-by- डिफ़ॉल्ट? मंच = winserversecurity

3.Is डिवाइस RsFx0320 लचीला फाइल सिस्टम प्रारूप के लिए एक पूर्ववर्ती है जिसे विंडोज सर्वर 2012 के साथ पेश किया गया था?

ओ / एस आधारित होने के बजाय एसक्यूएल आधारित लग रहा है। RsFx0320.sys SQL 2008 है। जैसा कि SQL 2012 के नीचे देखा गया है Rsxx0201.sys और SQL 2014 RsFx0300.sys है:

https://support.microsoft.com/en-us/help/2961258/fix-cannot-access-the-data-in-filetable-after-you-upgrade-from-sql-ser

जब आप 2012 से 2014 में अपग्रेड करते हैं, तो Microsoft दिखाता है कि क्या हो सकता है:

To work around this issue, change manually the path property of the resource <AvailabilityGroupName>_FSShare to point to the correct driver: From
'\\?\GLOBALROOT\Device\RsFx0201\<localmachine>\{AvailabilityGroupID}' to '\\?\GLOBALROOT\Device\RsFx0300\<localmachine>\{AvailabilityGroupID}'

मेरे प्रश्नों के उत्तर के लिए धन्यवाद 2 और 3. मुझे आपके उत्तर 1 का एहसास है, कि मैं उस शेयर के माध्यम से डेटा तक पहुंच सकता हूं, लेकिन मैं सोच रहा था कि कैसे, इसलिए शीर्षक "इन सर्च ऑफ फाइलेस्ट्राम इनसाइडर इंफॉर्मेशन "।
जॉन उर्फ ​​हॉट 2use
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.