在Microsoft SQL Server 2012上激活FILESTREAM功能后,SQL Server将在系统上创建“隐藏”共享。份额定义如下:
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文档:
- 文件流(SQL Server)
- 启用和配置FILESTREAM
- 创建一个启用了FILESTREAM的数据库
- 创建用于存储FILESTREAM数据的表
- ...以及所有相关的
- FILESTREAM与其他SQL Server功能的兼容性
- FILESTREAM DDL,函数,存储过程和视图
- 使用OpenSqlFilestream访问FILESTREAM数据
- 论文SQL Server 2008-SQL Server 2008中的文件流存储
- 以及FILESTREAM(OLTP)---设计关键任务OLTP解决方案的技术参考指南,其中引用了许多其他材料
...但是没有提及份额,份额或用途。您输入名称,SQL Server将在后台创建共享。
启用FILESTREAM的数据库
当创建启用FILESTREAM的数据库时,数据库引用一个文件组,该文件组引用一个与共享绝对无关的目录(建议在单独的驱动器上),该目录最初是在FILESTREAM配置期间创建的。
屏幕快照启用了FILESTREAM的数据库脚本
Paul Randall等人的白皮书。继续解释...
FILESTREAM数据存储在文件系统中的一组NTFS目录(称为数据容器)中,这些目录与数据库中的特殊文件组相对应。对FILESTREAM数据的事务访问由SQL Server和文件系统筛选器驱动程序控制,该驱动程序是在Windows级别启用FILESTREAM的一部分而安装的。使用文件系统筛选器驱动程序还允许通过UNC路径远程访问FILESTREAM数据。SQL Server维护从表行到与之关联的FILESTREAM文件的各种链接。这意味着直接通过文件系统删除或重命名任何FILESTREAM文件将导致数据库损坏。
...在文档的下方(第14页)...
对于每个具有FILESTREAM数据容器的NTFS卷,只有一个FILESTREAM文件系统筛选器驱动程序,而对于在该卷上具有FILESTREAM数据容器的每个SQL Server版本,也都有一个驱动程序。对于使用特定版本的SQL Server的所有实例,每个筛选器驱动程序负责管理该卷的所有FILESTREAM数据容器。
例如,一个托管三个FILESTREAM数据容器(每个三个SQL Server 2008实例一个)的NTFS卷将只有一个SQL Server 2008 FILESTREAM文件系统筛选器驱动程序。
问题
- 很高兴知道SQL Server的所有功能都很好并且捆绑在一起,但是该共享实际上有什么作用?是所谓的“文件系统过滤器驱动程序”吗?
- 既然任何经过身份验证的用户都可以访问“共享”,那么对安全性有何影响?
- 设备RsFx0320是Windows Server 2012引入的弹性文件系统格式的前身吗?
如果您可以提供我的问题的答案,那么如果您可以提供参考源就很好。