我的意思是能够通过Windows资源管理器或其他程序访问它。我相信答案是不可能的。但是我真的很想知道为什么不允许这样做。似乎可以通过网络共享将文件设置为只读。
你无法直接访问Filestream共享并四处浏览。对Filestream文件的任何打开都需要使用从SQL Server检索的路径以及通过EABuffer传递适当的事务上下文的NtCreateFile(或包装器)来完成。
可以创建一个新的共享并将其指向文件的物理位置,但这是没有意义的,因为没有将SQL Filestream行解析为物理文件位置的支持方法(RsFx筛选器驱动程序在内部处理这些转换) ,由于并发更新/分区更改,文件位置可能随时更改,并且你需要将文件夹的安全性放宽到不可接受的水平。如果在不了解SQL Server的情况下移动或删除文件,它也可能导致数据库损坏。如dportas的评论中所述,对物理文件持有的任何锁都将干扰删除。
我同意,能够通过资源管理器浏览Filestream文件的命名空间并直接通过应用程序打开文件而无需重写应用程序将是很棒的。
SQL Server 11(“ Denali”)包含FileTable功能,该功能提供了浏览Filestream中存储的文件的命名空间的功能。这样做有一些限制,但目的是真正开放从标准Win32应用程序访问存储在SQL中的文件数据的可能性。