SQL Server 2008 Filestream:使用filestream创建数据库时出错

时间:2011-03-03 16:02:39

标签: sql-server sql-server-2008 filestream

我正在进行练习:How to Detach and Attach a SQL Server FILESTREAM Enabled Database

创建启用FILESTREAM的数据库的步骤中,执行以下代码

Use Master
GO
IF EXISTS (SELECT name FROM sys.databases WHERE name = N'FileStreamDB')
DROP DATABASE FileStreamDB
GO
USE master
GO
CREATE DATABASE [FileStreamDB] ON PRIMARY 
( NAME = N'FileStreamDB', FILENAME = N'D:\FileStreamDB\FileStreamDB.mdf', 
SIZE = 10MB , MAXSIZE = UNLIMITED, FILEGROWTH = 10% )
LOG ON 
( NAME = N'FileStreamDB_log', FILENAME = N'D:\FileStreamDB\FileStreamDB_log.ldf' , 
SIZE = 10MB , MAXSIZE = UNLIMITED , FILEGROWTH = 10%)
GO
ALTER DATABASE [FileStreamDB] 
ADD FILEGROUP [FileStreamGroup] CONTAINS FILESTREAM 
GO

在我完成最后一步之前一切正常:

ALTER DATABASE [FileStreamDB] 
ADD FILE (NAME = N'FileStreamDB_FSData', FILENAME = N'D:\FileStreamDB\FileStreamData')
TO FILEGROUP FileStreamGroup
GO

执行此代码时,我收到以下错误

  

Msg 5120,Level 16,State 106,Line 1   无法打开物理文件“D:\ FileStreamDB \ FileStreamData”。   操作系统错误-2147024891:   “0x80070005(无法检索文本   对于这个错误。原因:1815)“。

我在Windows XP Professional上运行SQL Server 2008 Enterprise(评估许可证)。文件流按microsoft instructions

配置

导致该错误的原因是什么?

3 个答案:

答案 0 :(得分:3)

这可能是权限问题。您需要在D:\FileStreamDB上授予SQL Server服务帐户显式权限。

答案 1 :(得分:2)

您使用的是 Windows XP 。如果您还使用网络服务本地系统作为SQL Server帐户,则可能会遇到此错误:

http://connect.microsoft.com/SQLServer/feedback/details/435855/operating-system-error-2147024891-0x80070005-access-is-denied

最简单的解决方法是为SQL Server使用另一个帐户。第二个选项是下载链接中提到的XP修补程序。我不喜欢它;此修补程序是从2010年开始的,并且看起来没有维护并集成到较新的XP补丁中。至少我的XP系统是关于补丁的最新版本,我仍然遇到了问题。

在找到确认它是Windows XP中的错误的链接之前,我浪费了三个小时寻找问题的根源。现在更改SQL Server帐户后,它立即工作。

答案 2 :(得分:0)

在MS SQL 2014上遇到同样的错误。检查ACL三次。 问题是我在NTFS中通过链接文件夹功能使用了文件流文件夹的路径。 真正的物理路径源于真正的硬盘驱动器信件就像一个魅力。

P.S。即使通过链接文件夹,其他数据库文件类型的Filepathes也能正常工作。