2011-03-03 11 views
3

でデータベースを作成するときに、私は運動を通じてつもりです:FILESTREAM対応のデータベースの作成ステップHow to Detach and Attach a SQL Server FILESTREAM Enabled DatabaseSQL Server 2008のファイルストリーム:エラー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 Unable to open the physical file "D:\FileStreamDB\FileStreamData". Operating system error -2147024891: "0x80070005(failed to retrieve text for this error. Reason: 1815)".

私は、Windows XP Professionalの上のSQL Server 2008のエンタープライズ(評価ライセンス)を実行します。ファイルストリームは次のように構成されていますmicrosoft instructions

このエラーの原因は何ですか?

+0

「D:\ FileStreamDB \ FileStreamData」に空のフォルダを最初に作成しましたか? –

+0

@Martin、私は別のエラーが表示されます。メッセージ5170、レベル16、状態2、行1 ファイル 'D:\ FileStreamDB \ FileStreamData'は既に存在するため作成できません。ファイルパスまたはファイル名を変更し、操作を再試行します。 – padn

+0

私はジョーの答えがそうであるようだと思います。 –

答えて

3

おそらく許可の問題です。 D:\FileStreamDBにSQL Serverサービスアカウントの明示的なアクセス許可を与える必要があります。

+0

ジョー、私は、SQLコードを実行する前に、FileStreamDataフォルダを作成するよう訴えていますか? – padn

+0

@ padn:ファイルパス上の私の間違い。そのフォルダを作成する必要はありません。これは、権限を設定する必要があるより高いレベルです: 'D:\ FileStreamDB'。私は自分の答えを修正した。 –

2

Windows XPを使用しています。あなたはまた、SQL Serverのアカウントとしてネットワークサービスまたはローカルシステムを使用している場合は、このバグに苦しむ可能性:

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

最も簡単な修正はSQL Serverの別のアカウントを使用することです。 2番目のオプションは、リンクに記載されているXP修正プログラムをダウンロードすることです。私はそれが気に入りません;この修正プログラムは2010年のもので、維持されていないようで、新しいXPパッチに統合されています。少なくとも私のXPシステムはパッチに関して最新のものですが、私はまだ問題を抱えていました。

Windows XPのバグであることを確認するリンクが見つかる前に、問題の原因を探すのに3時間を費やしました。今すぐSQL Serverアカウントを変更した後、すぐに機能しました。

+0

Windows 2003サーバーでまったく同じエラーが発生しました。 SQL Serverサービスを、ローカルサービスアカウントを使用するように変更しました。完璧に働いた。ありがとう。 – NotMe

0

MS SQL 2014で同じエラーが発生しました。ACLを3回確認しました。 問題は、NTFSのリンクフォルダ機能を使用してfilestreamフォルダのパスを使用したことです。 本物のHDDの手紙を元にした本物のフィジカルパスは、魅力的に機能しました。

P.S.他のデータベースファイルタイプのファイルパッチは、リンクされたフォルダを経由しても正しく動作しています。

関連する問題