web-dev-qa-db-ja.com

SSMSのどのディレクトリにも.bakファイルが表示されない

SSMS 2008 R2を介して手動で作成された.bakファイルを他の人が今日作成しました。手動でデータベースを復元しようとしていますが、ファイルを参照してもファイルが表示されません。

復元プロセスをスクリプト化することはできますが、この問題は以前に見たことがあり、.bakが表示されない原因が何かはわかりません。

48
Sean Long

今日も同じ問題がありました。他の回答のいくつかに示されているように、それは権限の問題であることが判明しました。違いは、追加する必要があるアカウントがNT SERVICE\MSSQLSERVER

Screenshot

既定のSQLバックアップフォルダーのアクセス許可と、バックアップファイルを含むフォルダーのアクセス許可を比較して、アカウントを特定しました。

サービスアカウントの追加は、思ったほど簡単ではありません。ここに私のために働いたものがあります。 (サーバー2012 R2)

  1. サーバーにログインします。 (変更は、ネットワーク共有ではなく、実際のサーバーで行う必要があります。)
  2. Locationsをローカルサーバー名に変更します。
  3. NT SERVICE\MSSQLSERVERを名前ボックスに入力します。 (名前の確認をクリックしないでください)
  4. OKをクリックします。次に、一致するサービスアカウントのリストが表示されます。 [MSSQLSERVER]を選択し、[OK]をクリックして選択を受け入れます。

enter image description here

enter image description here

セキュリティ設定にリストされているサービスアカウントが表示され、それに応じて権限を調整できます。

アクセス許可を追加し(既定のSQLバックアップフォルダーと一致するようにフルコントロールを追加しました)、SQL Server管理コンソールを再起動した後、バックアップファイルを選択して復元することができました。

43
AdamsTips

今日もらった。

ファイル共有、インデックス作成をオフにし、開いているセッション(バックアップをコピーするためにログインした人)をすべてクリアしましたが、問題は解消しませんでした。

Windowsエクスプローラーに移動し、バックアップを別のフォルダーにコピーし、Management Studioを介してそのフォルダーを参照すると、そこに表示されました。

元のフォルダーを削除して再作成し、内容を再度コピーして.bakファイルを参照すると、通常の状態に戻りました。

これが誰かを助けることを願っています。

16
user27816

この問題に何度か遭遇しました。この問題はSQL Serverではなく、フォルダーのWindows権限にあります。 .bakファイルをコピーしたフォルダーに適切なアクセス許可を追加する必要があります(私はSystem Networkロール)。

より簡単な解決策は、Program Filesのデフォルトのバックアップフォルダーにファイルを移動することです。必要なすべての権限があります。 SQL Server 2012の場合

D:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\Backup
8
Jackofall

今日も同じ問題に遭遇しました。復元するためのバックアップファイルが提供されましたが、閲覧中には表示されませんでした。しかし、ファイルシステムにはアクセスできましたが、SQL Server management Studioを使用して復元ウィザードでアクセスできました。

いくつかを費やした後、私はそれが権限の問題であることを発見しました。 SQL ServerサービスはNetwork Serviceを使用して実行されていますが、Network Serviceアカウントにはフォルダーにアクセスする権限がありませんでした。 Network Serviceに権限を付与した後。復元するバックアップファイルが表示されました。

詳細は Blog で確認してください。

3
Scorpion

今日、これは私の開発ボックスで起こりました。私の場合、サービスアカウントにはフォルダへのアクセス許可がありましたが、ユーザーアカウントにはありませんでした。フォルダーへのアクセス許可をアカウントに付与すると、.BAKファイルを表示できました。

2

Windowsエクスプローラーでそれを見つけることができる場合は、RESTORE DATABASEコマンドは、不格好なGUIに依存する代わりに、使いにくいものです。誰がそこでどのようなコードが実行されているのか、なぜファイルを見つけることができないのかを知っています-申し訳ありませんが、解決策ではなく回避策しかありません。

また、ファイルが実際にはsomething.bak.txtではなく、something.bakであることを確認してください(Windowsは拡張機能を「助けて」くれます。デフォルトの動作は嫌いです)。

2
Aaron Bertrand