Cuando la función FILESTREAM está activada en Microsoft SQL Server 2012, SQL Server creará un recurso compartido "oculto" en el sistema. El recurso compartido se define de la siguiente manera:
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
El nombre es el nombre del recurso compartido que proporciona cuando configura inicialmente FILESTREAM en el Administrador de configuración de SQL Server . Pero para que sirve?
Hasta aquí
Leí toda la documentación disponible de FILESTREAM desde:
- FILESTREAM (SQL Server)
- Habilitar y configurar FILESTREAM
- Crear una base de datos habilitada para FILESTREAM
- Crear una tabla para almacenar datos de FILESTREAM
- ... y todo lo relacionado
- Compatibilidad de FILESTREAM con otras características de SQL Server
- FILESTREAM DDL, funciones, procedimientos almacenados y vistas
- Acceda a los datos de FILESTREAM con OpenSqlFilestream
- the paper SQL Server 2008 - Almacenamiento FILESTREAM en SQL Server 2008
- y el artículo FILESTREAM (OLTP) --- una guía de referencia técnica para diseñar soluciones OLTP de misión crítica que hace referencia a muchos otros materiales
... pero no se mencionó la participación y lo que hace o para qué sirve. Ingrese el nombre y SQL Server creará el recurso compartido bajo el capó.
Base de datos habilitada para FILESTREAM
Cuando crea una base de datos habilitada para FILESTREAM, la base de datos hace referencia a un grupo de archivos que hace referencia a un directorio (recomendado en una unidad separada) que no tiene absolutamente nada que ver con el recurso compartido, que se creó inicialmente durante la configuración de FILESTREAM.
Captura de pantalla del script de base de datos habilitado para FILESTREAM
Sí, me doy cuenta de que todas las rutas están en C :; es solo un ejemplo
El libro blanco de Paul Randall et al. continúa explicando que ...
Los datos de FILESTREAM se almacenan en el sistema de archivos en un conjunto de directorios NTFS llamados contenedores de datos, que corresponden a grupos de archivos especiales en la base de datos. El acceso transaccional a los datos de FILESTREAM está controlado por SQL Server y un controlador de filtro del sistema de archivos que se instala como parte de la habilitación de FILESTREAM a nivel de Windows. El uso de un controlador de filtro del sistema de archivos también permite el acceso remoto a los datos de FILESTREAM a través de una ruta UNC. SQL Server mantiene un tipo de enlace desde las filas de la tabla a los archivos FILESTREAM asociados con ellos. Esto significa que eliminar o renombrar cualquier archivo FILESTREAM directamente a través del sistema de archivos provocará daños en la base de datos.
... más abajo en el documento (página 14) continúan con ...
Hay un único controlador de filtro del sistema de archivos FILESTREAM para cada volumen NTFS que tiene un contenedor de datos FILESTREAM, y también hay uno para cada versión de SQL Server que tiene un contenedor de datos FILESTREAM en el volumen. Cada controlador de filtro es responsable de administrar todos los contenedores de datos de FILESTREAM para ese volumen, para todas las instancias que usan una versión particular de SQL Server.
Por ejemplo, un volumen NTFS que aloja tres contenedores de datos FILESTREAM, uno para cada una de las tres instancias de SQL Server 2008, solo tendrá un controlador de filtro del sistema de archivos FILESTREAM de SQL Server 2008.
Preguntas
- Es bueno saber que SQL Server tiene todo lo bueno y atado, pero ¿qué hace realmente ese recurso compartido? ¿Es el llamado "controlador de filtro del sistema de archivos"?
- Dado que cualquier usuario autenticado puede acceder al "recurso compartido", ¿cuáles son las implicaciones de seguridad?
- ¿El dispositivo RsFx0320 es un predecesor del formato de sistema de archivos resistente que se introdujo con Windows Server 2012?
Si puede proporcionar respuestas a mis preguntas, entonces sería bueno si pudiera proporcionar una fuente de referencia.