web-dev-qa-db-ja.com

データベースの復元中のmssql '5(Access is denied。)'エラー

SQLサーバー管理スタジオを使用して、ファイルからデータベースを復元したい(タスク->復元->データベース。デバイスから選択してファイルを選択した後)。

その後、私はこのエラーを受け取ります:

オペレーティングシステムは、「E:\ Program Files\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\DATA\XXXXXX.mdf」で「RestoreContainer :: ValidateTargetForCreation」を試行中にエラー「5(Access is denied。)」を返しました。メッセージ3156、レベル16、状態8、サーバーXXXX、行2

この問題を修正するにはどうすればよいですか?セキュリティエラーですか?

63
2xMax

SQLサーバーが実行されているアカウントは、バックアップファイルがある場所、またはデータベースを復元しようとしている場所にアクセスできません。 SQL Server構成マネージャーを使用して、SQL Serverインスタンスの実行に使用されるアカウントを検索し、そのアカウントが.BAKファイルとMDFは復元されます。

enter image description here

80
SQLMenace

最近、この問題が発生しました。私が修正したのは、[データベースの復元]ダイアログの[ファイル]ページに移動し、[すべてのファイルをフォルダーに再配置する]をオンにすることでした。Restore Database dialog

154
Jamie Humphries

まあ、私の場合、解決策は非常にシンプルでストレートでした。

log On As valueの値だけを変更する必要がありました。

解決する手順-

  1. 開くSql Server Configuration manager
  2. click on SQL Server (MSSQLSERVER
  3. Propertiesに移動します

enter image description here

  1. log On As値をLocalSystemに変更します

enter image description here

これを希望するとあなたにも役立ちます:)

9
Vikash Pandey

私はちょうどこの同じ問題に遭遇しましたが、異なる修正がありました。基本的に、コンピューターにSQL ServerとSQL Server Expressの両方がインストールされていました。これは、SQL Expressに復元しようとしたときに機能しませんでしたが、SQL Serverに復元したときに正しく機能しました。

3
Ramone Hamilton

SQL 2012 DBでSQL 2008 R2バックアップデータベースを復元しようとしたときに、同じエラーが発生していました。このエラーは、Cドライブに.mdfファイルと.ldfファイルを配置するための権限が不十分であるためだと思います。簡単なことを1つ試した後、正常に復元することに成功しました。

これを試して:

[データベースの復元]ウィザードウィンドウで、[ファイル]タブに移動し、復元先をC:から他のドライブに変更します。その後、通常の復元プロセスを続行します。それは間違いなく正常に復元されます!

これがあなたにも役立つことを願っています。乾杯:)

1
Raja Sekhar

私はこれを見つけ、それは私のために働いた:

CREATE LOGIN BackupRestoreAdmin WITH PASSWORD='$tr0ngP@$$w0rd'
GO
CREATE USER BackupRestoreAdmin FOR LOGIN BackupRestoreAdmin
GO
EXEC sp_addsrvrolemember 'BackupRestoreAdmin', 'dbcreator'
GO
EXEC sp_addrolemember 'db_owner','BackupRestoreAdmin'
GO
0
Tom Stickel

データベースをアタッチする場合は、「アタッチするデータベース」グリッド、特に.mdfファイルを指定した後の「所有者」列を確認してください。アカウントをメモし、mdfファイルとldfファイルの両方に対して完全なアクセス許可を付与します。

0
jgo

私の場合、_Restore Database_ページのOptionsタブの下にあるOverwrite the existing database (WITH REPLACE)のボックスをチェックする必要がありました。

このエラーが発生した理由は、データベースにMDFファイルが既に存在し、上書きされていなかったためです。

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

0
Newbee

[データベースの復元]ウィンドウの[ファイル]タブで[すべてのファイルをフォルダーに再割り当て]をオンにしましたが、ローカルマシンにデフォルトパスが存在しなかったため、このエラーが発生しました。変更したら復元できるようになったら、別のフォルダーにldf/mdfファイルがありました。

0
cheriejw

これは本日、私に起こりました。私はローカルサーバーの管理グループのメンバーであり、妨げられていないアクセス権を持っているか、そう思いました。インスタンスにそのようなDBがない場合でも、「replace」オプションにチェックマークを付けました。

以前は同じ名前のDBがあり、MDFおよびLDFファイルはサーバーのデータおよびログフォルダーに物理的に配置されていましたが、実際のメタデータはsys.databases。SQLサーバーのサービスアカウントも既存のファイルを上書きできません。また、ファイルの所有者が「不明」であることがわかりました。所有権を上記の2つのファイルに変更しなければなりませんでした。ローカルサーバーの管理グループごとに、名前を変更します。

そして、ついに機能しました。

0
user1465073

アカウントには、バックアップファイルの場所へのアクセス権がありません。コンピューターマネージャー経由でSQL Server構成マネージャーに簡単にアクセスするには、次の手順を実行します

  1. Windowsキー+ Rをクリックして、実行ウィンドウを開きます。
  2. 「開く:」ボックスにcompmgmt.mscと入力します。
  3. [〜#〜] ok [〜#〜]をクリックします。
  4. サービスとアプリケーションを展開します。
  5. SQL Server Configuration Managerを展開します。
  6. ログオンタブでユーザーアカウントを変更します。

データベースを簡単に復元できるようになりました

0
reza.bm

私はまったく同じ問題を抱えていましたが、私の修正は異なっていました-私の会社は私のマシン上のすべてのファイルを暗号化しています。ファイルを復号化した後、MSSQLはDBへのアクセスと作成に問題がありませんでした。 。bak file->Properties->詳細設定...->コンテンツを暗号化してデータを保護します。Decrypting

0

上記のシナリオを試したところ、同じエラー5(アクセス拒否)が発生しました。深く掘り下げたところ、ファイル.bakにはSQLサービスアカウントへのアクセス権が必要であることがわかりました。不明な場合は、[スタート]-> [ファイル名を指定して実行]にservices.mscと入力し、SQL Serviceログオンアカウントを確認します。

次に、ファイルに移動し、右クリックして[プロパティ]の[セキュリティ]タブを選択し、編集して新しいユーザーを追加します。

最後に、完全なアクセス権を付与するために完全な許可を与えます。

次に、SSMSからバックアップの復元を試みます。

0
Niroshanth