Quando la funzionalità FILESTREAM è attivata su Microsoft SQL Server 2012, SQL Server creerà una condivisione "nascosta" sul sistema. La condivisione è definita come segue:
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
Il nome è il nome della condivisione fornita durante la configurazione iniziale di FILESTREAM in Gestione configurazione SQL Server . Ma a cosa serve?
Finora
Ho letto tutta la documentazione FILESTREAM disponibile a partire da:
- FILESTREAM (SQL Server)
- Abilita e configura FILESTREAM
- Creare un database abilitato per FILESTREAM
- Creare una tabella per l'archiviazione dei dati FILESTREAM
- ... e tutto ciò che riguarda
- Compatibilità di FILESTREAM con altre funzionalità di SQL Server
- FILESTREAM DDL, Funzioni, Stored procedure e viste
- Accedi ai dati FILESTREAM con OpenSqlFilestream
- l'articolo SQL Server 2008 - Archiviazione FILESTREAM in SQL Server 2008
- e l'articolo FILESTREAM (OLTP) --- una guida di riferimento tecnico per la progettazione di soluzioni OLTP mission-critical che fa riferimento a molti altri materiali
... ma non si faceva menzione della condivisione e di ciò che fa oa cosa serve. Immettere il nome e SQL Server creerà la condivisione sottotitoli.
Database abilitato a FILESTREAM
Quando si crea un database abilitato per FILESTREAM, il database fa riferimento a un filegroup che fa riferimento a una directory (consigliata su un'unità separata) che non ha assolutamente nulla a che fare con la condivisione, inizialmente creata durante la configurazione di FILESTREAM.
Screenshot Script di database abilitato a FILESTREAM
Sì, mi rendo conto che tutti i percorsi sono su C :; è solo un esempio
Il libro bianco di Paul Randall et al. continua spiegando che ...
I dati FILESTREAM sono archiviati nel file system in un set di directory NTFS chiamate contenitori di dati, che corrispondono a filegroup speciali nel database. L'accesso transazionale ai dati FILESTREAM è controllato da SQL Server e da un driver di filtro del file system installato come parte dell'abilitazione di FILESTREAM a livello di Windows. L'uso di un driver di filtro del file system consente anche l'accesso remoto ai dati FILESTREAM attraverso un percorso UNC. SQL Server mantiene un collegamento di sorta dalle righe della tabella ai file FILESTREAM ad essi associati. Ciò significa che l'eliminazione o la ridenominazione di qualsiasi file FILESTREAM direttamente attraverso il file system comporterà il danneggiamento del database.
... più in basso nel documento (pagina 14) che continuano con ...
Esiste un singolo driver di filtro del file system FILESTREAM per ogni volume NTFS che ha un contenitore di dati FILESTREAM e ce n'è uno per ogni versione di SQL Server che ha un contenitore di dati FILESTREAM sul volume. Ogni driver di filtro è responsabile della gestione di tutti i contenitori di dati FILESTREAM per quel volume, per tutte le istanze che utilizzano una particolare versione di SQL Server.
Ad esempio, un volume NTFS che ospita tre contenitori di dati FILESTREAM, uno per ciascuna delle tre istanze di SQL Server 2008, avrà un solo driver di filtro del file system FILESTREAM di SQL Server 2008.
Domande
- È bello sapere che SQL Server ha tutto ciò che è bello e collegato, ma cosa fa effettivamente quella condivisione? È il cosiddetto "driver del filtro del file system"?
- Visto che qualsiasi utente autenticato può accedere alla "condivisione", quali sono le implicazioni per la sicurezza?
- Device RsFx0320 è un predecessore del formato di file system resiliente introdotto con Windows Server 2012?
Se riesci a fornire risposte alle mie domande, sarebbe bello poter fornire un riferimento alla fonte.