Wenn die FILESTREAM-Funktion in Microsoft SQL Server 2012 aktiviert ist, erstellt SQL Server eine "versteckte" Freigabe auf dem System. Die Freigabe ist wie folgt definiert:
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
Der Name ist der Name der Freigabe, die Sie beim erstmaligen Konfigurieren von FILESTREAM im SQL Server-Konfigurations-Manager angeben . Aber wofür ist es?
Bisher
Ich habe die gesamte FILESTREAM-Dokumentation gelesen, beginnend mit:
- FILESTREAM (SQL Server)
- Aktivieren und Konfigurieren von FILESTREAM
- Erstellen Sie eine FILESTREAM-fähige Datenbank
- Erstellen Sie eine Tabelle zum Speichern von FILESTREAM-Daten
- ... und alles was dazugehört
- FILESTREAM-Kompatibilität mit anderen SQL Server-Funktionen
- FILESTREAM-DDL, Funktionen, gespeicherte Prozeduren und Ansichten
- Greifen Sie mit OpenSqlFilestream auf FILESTREAM-Daten zu
- das Papier SQL Server 2008 - FILESTREAM-Speicher in SQL Server 2008
- und der Artikel FILESTREAM (OLTP) - ein technisches Referenzhandbuch für das Entwerfen unternehmenskritischer OLTP-Lösungen, in dem auf viele andere Materialien verwiesen wird
... aber es wurde nicht erwähnt, was die Aktie macht oder wofür sie ist. Sie geben den Namen ein und SQL Server erstellt die Freigabe im Hintergrund.
FILESTREAM-fähige Datenbank
Wenn Sie eine FILESTREAM-fähige Datenbank erstellen, verweist die Datenbank auf eine Dateigruppe, die auf ein Verzeichnis verweist (empfohlen auf einem separaten Laufwerk), das absolut nichts mit der Freigabe zu tun hat, die ursprünglich während der FILESTREAM-Konfiguration erstellt wurde.
Screenshot FILESTREAM-fähiges Datenbankskript
Ja, mir ist klar, dass alle Pfade auf C: sind; Es ist nur ein Beispiel
Das Weißbuch von Paul Randall et al. erklärt weiter, dass ...
FILESTREAM-Daten werden im Dateisystem in einer Reihe von NTFS-Verzeichnissen gespeichert, die als Datencontainer bezeichnet werden und speziellen Dateigruppen in der Datenbank entsprechen. Der Transaktionszugriff auf die FILESTREAM-Daten wird von SQL Server und einem Dateisystemfiltertreiber gesteuert, der im Rahmen der Aktivierung von FILESTREAM auf Windows-Ebene installiert wird. Die Verwendung eines Dateisystemfiltertreibers ermöglicht auch den Remotezugriff auf die FILESTREAM-Daten über einen UNC-Pfad. SQL Server verwaltet eine Art Link von Tabellenzeilen zu den damit verbundenen FILESTREAM-Dateien. Dies bedeutet, dass das Löschen oder Umbenennen von FILESTREAM-Dateien direkt über das Dateisystem zur Beschädigung der Datenbank führt.
... weiter unten im Dokument (Seite 14) machen sie weiter mit ...
Es gibt einen einzigen FILESTREAM-Dateisystemfiltertreiber für jedes NTFS-Volume mit einem FILESTREAM-Datencontainer und einen für jede Version von SQL Server mit einem FILESTREAM-Datencontainer auf dem Volume. Jeder Filtertreiber ist für die Verwaltung aller FILESTREAM-Datencontainer für dieses Volume verantwortlich, für alle Instanzen, die eine bestimmte Version von SQL Server verwenden.
Ein NTFS-Volume, auf dem sich drei FILESTREAM-Datencontainer befinden, einer für jede der drei SQL Server 2008-Instanzen, verfügt beispielsweise nur über einen SQL Server 2008-FILESTREAM-Dateisystemfiltertreiber.
Fragen
- Es ist schön zu wissen, dass in SQL Server alles schön und fest verbunden ist, aber was macht diese Freigabe tatsächlich? Ist es der sogenannte "Dateisystem-Filtertreiber"?
- Welche Auswirkungen hat die Sicherheit, wenn ein authentifizierter Benutzer auf die Freigabe zugreifen kann?
- Ist das Gerät RsFx0320 ein Vorgänger des mit Windows Server 2012 eingeführten ausfallsicheren Dateisystemformats?
Wenn Sie meine Fragen beantworten können, wäre es schön, wenn Sie eine Quellenangabe machen könnten.