web-dev-qa-db-ja.com

CREATE FILEでオペレーティングシステムエラー5が発生しました(このエラーのテキストを取得できませんでした。理由:15105)

フォルダー内にMS SQL EXPRESSのデータベースファイル.mdfがあります。

C:\Program Files\Microsoft SQL Server\MSSQL10.SQLEXPRESS\MSSQL\DATA

MS 2008 R2(MSSQL10_50.MSSQLSERVER)に添付したいのですが、Server Management Studioを使用すると、次のエラーが表示されます。

CREATE FILE encountered operating system error 5(failed to retrieve text for this error. Reason: 15105) while attempting to open or create the physical file

それを解決する方法はありますか?

68
GibboK

管理者としてMS SQL Management Studioを実行している問題を解決できました。

125
GibboK

これは、Windowsアクセス許可の問題です。 Windows認証を使用してサーバーに接続した場合、そのWindowsユーザーにはファイルへのアクセス許可が必要です。 SQL Server認証を使用してサーバーに接続した場合、SQL Serverインスタンスアカウント(MSSQL $、MSSQL $ SQLEXPRESSなど)にはファイルへのアクセス許可が必要です。管理者としてログインすることを提案する他のソリューションは、本質的に同じことを実現します(少し大胆に:)。

データベースファイルがSQL Serverのデータフォルダーにある場合、そのフォルダーからSQL Serverアカウントのユーザー権限を継承しているはずなので、SQL Server認証は機能しているはずです。そのフォルダーに対するSQL Serverインスタンスのアカウントの権限を修正することをお勧めします。データファイルが他の場所にあり、SQL Serverアカウントにアクセス許可がない場合は、後で他の問題が発生する可能性があります。繰り返しますが、より良い解決策は、SSアカウントの権利を修正することです。常に管理者としてログインする場合を除き...

47
user2029904

ファイルmdfおよびldfのプロパティを右クリック->セキュリティ->完全な許可

データベースのインストール場所に管理者権限またはフルコントロールを付与すると、問題が解決しました

4
sidh4work

同様のエラーが発生していました。

CREATE FILE encountered operating system error **32**(failed to retrieve text for this error. Reason: 15105) while attempting to open or create the physical file

次のコマンドを使用して、データベースを接続しました。

EXEC sp_attach_single_file_db @dbname = 'SPDB',
@physname = 'D:\SPDB.mdf'
2
Brij

同じ問題がありました。数回試行した後、Windows認証でSQLサーバーを接続すると問題が解決することに気付きました。

2
Lamar

他の提案として、管理者として実行すると役立ちます。

ただし、これは、Windowsユーザーが実際にSQLサーバーが実行されているマシンの管理者である場合のみです。

たとえば、リモートマシンからSSMSを使用する場合、ユーザーがSQL Serverを実行しているマシンではなくSSMSを実行しているマシンの管理者のみである場合、「administartorとして実行」の使用は役に立ちません。

1
yoel halb

1 .copy your -。MDF、-。LDF files to pate this location For 2008 server C:\ Program Files\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\DATA 2.SQL Server 2008でATTACHを使用し、追加する同じ場所を選択します

1
pradeep

この問題は、Windows Server 2003とSQL 2005で発生しました。Windowsユーザーアカウントとしてファイルの所有権を取得する必要があり、その方法でデータベースを取得しました。

ファイルを右クリックして、[プロパティ]を選択し、[OK]をクリックして情報画面を通過し、[詳細設定]ボタンをクリックし、使用可能なアカウントまたはグループのリストからアカウントを選択し、その変更を適用し、[プロパティ]画面で[OK]をクリックする必要があります。すべて完了したら、ファイルのアクセス許可を管理できるようになります。

Windows認証でSSMSにログインしましたが、エラーなしでデータベースをアタッチできました。

乾杯!

1
IryDBA2791

C:ではなくD:でファイルを作成することにしましたが、すべてうまくいきました。 Windows 7 ... 10には、ファイルとフォルダーの共有と承認に関する多くの問題があります。

0
Sohail

マウントポイントがある場合は、それに応じてSQL Serverサービスアカウントをボリュームセキュリティに追加します

0
meto

開始->実行-> services.msc-> SQL Serverが見つかるまでサービスのリストをスクロールします->右クリック->プロパティ->ログオンタブ:

次にLocal System Accountを選択し、Allow service to interact with desktopチェックボックスをオンにします。

サービスを再起動します。

Services

0
TiyebM

私の解決策は少し複雑でした。サービスを実行しているユーザーを確認し、MSSMSをローカルおよびドメイン管理者として実行し、フォルダーのアクセス許可を確認した後、このエラーが引き続き発生していました。私の解決策は?

フォルダーの所有権はローカルアカウントによって引き続き維持されました。

[プロパティ]> [セキュリティ]> [詳細設定]> [所有者]>(ドメイン/ローカルユーザー/グループSQLサービスが実行されている)

これで問題は解決しました。

0
xkalibur

データベースをデタッチするwindowsuserとデータベースをアタッチするwindowsuserが異なる場合、この問題に直面しました。 windowsuserがデータベースをデタッチしてアタッチしようとすると、問題なく正常に機能しました。

0
Venkataraman R

この同じ問題は、ファイルの所有者が削除されたときに発生します。この場合、ファイルのプロパティに移動すると、ユーザー名ではなくSIDが表示されます。ファイルの所有権を取得します(自分に完全な制御権を付与します)。それが完了すると、ファイルで必要なことは何でもできます。

管理者がトリックを実行しなかったため、ログイン時にこの作業が行われました。

0
PseudoToad

これが私の場合に起こったことです。データベースのファイルを添付するように求められました。次のようにファイル名が与えられました

  • devdb.mdfおよびdevdb.ldf

ファイルの添付に進み、ファイルが別のプロセスで使用中であることを確認し続けました。

Sys.master_filesからシステムビューのselect name、physical_nameに対してクエリを実行しました。正確なファイル名が別のデータベースで既に使用されていることを確認したため、ファイルを添付しようとするたびに、ファイルが別のプロセス(SQLサーバー)で使用されているというエラーが発生し続けました

したがって、このようなメッセージを受け取っている場合は、システムビューsys.master_filesに対してクエリを実行し、どのデータベースがすでに同じ名前のファイルを使用している可能性があるかを確認してください。以下では、何をすべきかを理解します。

ありがとう。

0
sqladmin

私の場合、新しいドライブにデータベースを作成しようとするとエラーが発生しました。問題を解決するために、そのドライブに新しいフォルダーを作成し、ユーザープロパティのセキュリティをフルコントロールに設定します(Modifyを設定するだけで十分な場合があります)。結論:ユーザーのドライブ/フォルダープロパティセキュリティを「変更」に設定します。

0
Menahem

SSMSを管理者として開き、SQL AuthとWindows Authとして実行すると機能しませんでした。

うまくいったのは、LDFとMDFファイルが配置されているのと同じ場所にファイル名を変更するだけでした。

alter database MyDB
add file ( name = N'FileStreamName', 
filename = N'D:\SQL Databases\FileStreamSpace' ) 
to filegroup DocumentFiles;
0

別のサーバーにバックアップされたデータベースを復元すると、このエラーが発生しました。長い闘争の後、これは私がやったことです

  1. インスタントファイルの初期化を有効にし、

  2. フォルダーに対するアクセス許可(フルコントロール)をサービスアカウントと自分のWindowsアカウントに付与し、

  3. SQLサービスを再起動しました。その後データベースが復元されました。

0
Lucian

既に管理者として実行している場合は、使用しているユーザーに適切なサーバーの役割があることを確認してください。

  1. Saとしてログイン(可能な場合)
  2. セキュリティフォルダを展開します
  3. ログインフォルダーを展開する
  4. 使用したいユーザーを右クリックします
  5. プロパティを選択
  6. サーバーの役割を選択
  7. すべてのサーバーの役割を選択します
  8. OKをクリック
  9. SSMSを再起動します
  10. 変更されたユーザーでログインする
0
jnoreiga

キーは「オペレーティングシステムエラー5」です。マイクロソフトは、サイトのさまざまなエラーコードと値を有益にリストしています

https://msdn.Microsoft.com/en-us/library/windows/desktop/ms681382(v = vs.85).aspx

ERROR_ACCESS_DENIED 5(0x5)アクセスが拒否されました。

0
Cameron Kerr

--.MDF--.LDFファイルをコピーして、この場所に配置します2008サーバーC:\Program Files\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\DATA 2の場合。

SQL Server 2008では、ATTACHを使用して、追加する同じ場所を選択します

0
Munish Gupta

手順は次のとおりです。

  1. .mdfおよび.ldfファイルを右クリックします。
  2. 次に、プロパティを選択します。
  3. セキュリティ->詳細設定->アクセス許可で、ユーザーを追加します
0
ehsan farahmand

私の場合、管理者として実行しても役に立ちません。 Configuration Managerでビルドインアカウントをローカルシステムに変更することで問題を解決しました。

0
NewComer