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


46

今日、SSMS 2008 R2を使用して手動で作成された.bakファイルが他の誰かによって作成されています。データベースを手動で復元しようとしていますが、残念ながら、参照するときにファイルが表示されません。

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


復元用のスクリプトを作成します。原因を知りたいだけです。これは間違いなく.bak.txtなどではなく、.bakです。
ショーンロング

だから、あなたはファイルが存在することがわかっているフォルダを閲覧できますか?それは表示されませんか?または、フォルダーを参照できませんか?
アーロンバートランド

フォルダを参照できますが、.bakファイルは表示されません。SSMSを実行しているユーザーの権限を確認しました。ユーザーはローカル管理者であり、ファイルは「非表示」などとマークされていません。
ショーンロング

WindowsエクスプローラーのフォルダービューとSSMSのビューを示すスクリーンショットを投稿できますか?また、このステップに到達するために使用しているプロセスを質問で説明してください。
アーロンバートランド

1
(また、SQL Serverのサービスアカウントがあまりにも権限を持たなければならないだけでなく、SSMSユーザーに注意もののをあなたも一緒に何かをする前に、リストに表示からファイルを.BAK防ぐべきではないという。。)
アーロン・ベルトラン

回答:


39

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

スクリーンショット

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

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

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

ここに画像の説明を入力してください

ここに画像の説明を入力してください

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

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


superuser.com/questions/248315/…は、コンピューター上のユーザーアカウントを一覧表示する方法を示しています。という名前のサービスsには、NT Service\sそのアカウントでサービスが実行されていなくても、という名前の仮想アカウントがあります。
タヒルハッサン

2
私は追加する必要がありましたアカウントはだったNT Service\MSSQL$SQLSERVER2014私は、インスタンスの名前、おそらくので、SQLSERVER2014
thinkOfaNumber

16

今日これを手に入れた。

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

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

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

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


1
それは助けになりました!:)
ピーターピットロック14年

5

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

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

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

これは、1つのファイルを復元するためだけにコンピューターに潜在的なセキュリティホールを開けないため、優れたソリューションです。
マイケルポッター

ポリシーやスタッフを必要とせずにうまく機能します
Marin

3

今日も同じ問題に出会いました。復元するバックアップファイルが与えられましたが、閲覧中は表示されませんでした。ただし、ファイルシステムではなく、を使用して復元ウィザードでアクセスできましたSQL Server management Studio

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

詳細についてはブログで確認してください。


2

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

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


1

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

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.