バックアップデバイスを開けません。オペレーティングシステムエラー5


138

以下は.bak、データベースをバックアップ(作成)するために使用しているクエリです。

ただし、実行すると常に次のエラーメッセージが表示されます。

メッセージ3201、レベル16、状態1、行1
バックアップデバイス 'C:\ Users \ Me \ Desktop \ Backup \ MyDB.Bak'を開けません。オペレーティングシステムエラー5(アクセスが拒否されました)。

メッセージ3013、レベル16、状態1、行1の
BACKUP DATABASEが異常終了しています。

これは私のクエリです:

BACKUP DATABASE AcinsoftDB
TO DISK = 'C:\Users\Me\Desktop\Backup\MyDB.Bak'
WITH FORMAT,
MEDIANAME = 'C_SQLServerBackups',
NAME = 'Full Backup of MyDB';

ええと、エラーメッセージはかなり明確ですよね。プログラムはどのユーザーとして実行されていますか?bakファイルは存在しますか?手動でアクセスできますか?
Pekka

1
タグまたはタイトルに製品を配置しなかったため、これはファイルパスからのSQL Server用であると想定する必要がありますか?
Powerlord

ノートパソコンを再フォーマットする前にこのクエリを実行すると、問題が解決しました。これはSQL Server 2008で、管理者として実行しています。このクエリで作成中のため、bakファイルは存在しません。
スマイリー

@Smiley Face:ネットワークではなく、ローカルからSQLファイルを読み取る必要があります。したがって、最初にSQLファイルをネットワークからローカルドライブに移動し、それを復元する必要があります。
mrjimoy_05 2013

回答:


234

ええ、私はこれを獲得しました。

Windowsサービスを確認します。スタート>管理>サービス

SQL Server(MSSQLSERVER)と呼ばれるリストでサービスを見つけます。「ログオン」列を探します(リストに存在しない場合は追加する必要があります)。

これは、ディレクトリへのアクセス許可を付与するために必要なアカウントです。エクスプローラで右クリック>プロパティ>共有(およびセキュリティ)

:ネットワーク経由でアクセスする場合は、実際のディレクトリと共有にアクセス許可を与えることを忘れないでください。

適用して権限が反映されるのを待ってから、バックアップを再試行してください。

注2:ネットワーク経由でバックアップしていて、SQLが「ローカルサービス」として実行されている場合、問題が発生しています...権限を割り当ててみるか、ローカルでバックアップしてSQL Serverの外部でxcopyする方が簡単かもしれません( 1時間後)。

注3:ネットワークサービスとして実行している場合、リモートマシンがSQL Serverのネットワークサービスを認識しないことがあります。この場合は、実際のコンピューター自体にアクセス許可を追加する必要があります。MyServer $。


20
アクセス許可/追加/詳細設定ではリストにユーザーは見つかりませんでしたが、「NT Service \ MSSQLSERVER」に貼り付けたので、大げさに機能しました。
マークA

3
フォルダに「全員」の権限を追加すると、これがカバーされますか?
DevDave 2013年

3
依存します。それが本当に認証されていないパブリックなものであれば、はい。それが「任意の認証済み」である場合、リモートマシンのローカルサービスは通常は対象外ですが、本当に全員にアクセスを許可しますか?これは略奪可能な違反です。
Robin Vessey 2013年

1
うまくいきませんでした。C:\ temp \にバックアップしています。フォルダのアクセス許可画面は、@ Mark Aが提案したとおりに貼り付けた場合でも、サービスService NTService \ MSSQLSERVERが使用するログオンを認識しません。そのサービスを使用するための良い代替アカウントはありますか?
MGOwen

8
私のために働いた、素晴らしい解決策!私はSQL Server Express 2014を使用しているため、「NT Service \ MSSQL $ SQLEXPRESS」への書き込み権限を付与する必要があります。
mikhail-t 2015

11

スタートメニューのSQLサーバーフォルダーに移動し、構成ツールをクリックします。SQLサーバー構成マネージャーを選択します。SQLサーバーサービスで、目的のインスタンスで(ログオン)をローカルシステムに変更します。


7

SQL Serverサービスアカウントには、フォルダーへの書き込み権限がありません C:\Users\Kimpoy\Desktop\Backup\


22
SQL Serverサービスアカウントにこのフォルダーにアクセスするためのアクセス許可を与えるにはどうすればよいですか?:)
スマイリー

6

最近この問題も発生しましたが、サーバーAからバックアップジョブを実行していましたが、バックアップされているデータベースはサーバーBにあり、サーバーCのファイル共有にありました。サーバーAのエージェントがサーバーBにバックアップを実行するように指示すると-sqlコマンド。実際には、サーバーCにバックアップを書き込もうとするサーバーBでsqlが実行されているサービスアカウント。

覚えておいてください。実際のBACKUP DATABASEコマンドを実行するSQLサーバーのサービスアカウントは、エージェントではなくファイルシステムに対する権限を必要とするものです。


4

私はこれを自分で試してみました。MSSQLSERVERログインユーザーが持っていることを確認しましたfull accessが、それでも問題が発生していました。宛先をCのルートに移動したときにのみ機能します。さらに重要なのは、ユーザーフォルダーの外にあることです(完全なアクセス許可を持つ共有があったとしても、テストとして "Everyone"を試しました)。

私の問題を「修正済み」と見なすかどうかはわかりませんが、「問題はありません」。

このスレッドに出くわした他のユーザーのための参考までに。


1
これは、ネットワークドライブ上にユーザーパスが存在するエンタープライズドメインが原因であると考えられます。これにより、ユーザーがログインするマシンに関係なく、ユーザーが透過的にアクセスできるようになります。このような状況:superuser.com/a/730519
Bon

@ボンありがとう!これで問題が解決しました。バックアップファイルのあるパスは、実際にはネットワークパスでした。
JonM

4

Windows 10上のSQL Express 2014 SP1でも同じ問題に直面しています。

機能するソリューション

  1. 「サービス」と入力してサービスを開く
  2. SQL Server(SQLExpress)を見つけて開きます。
  3. [ログオン]タブに移動します
  4. ローカルシステムアカウントを選択します(サービスがデスクトップと対話することを許可もチェックします)
  5. OKをクリックします。サービスを停止します。サービスを再起動します。
  6. 問題が解決しました

3

復元プロセスを実行する権限を与える必要があるユーザーを見つけるには、次の手順に従います。

SQL Serverがインストールされているサーバーに移動する必要があります。SQL Server構成マネージャーを見つける

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

次に、「SQL Serverサービス」に移動する必要があります

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

SQL Server(MSSQLSERVER)インスタンスの下に、「Logon As」列を持つアカウントがあります。私の場合は、NT Service \ MSSQLSERVERです。

これは、ソース.bakの場所の[セキュリティ]タブで追加する必要があるアカウントであり、バックアップファイルを読み取ることができるように、そのユーザーに「読み取り」権限を付与します。

バックアップファイルが「D:\ Shared」フォルダにあるとすると、次のような権限を付与する必要があります。

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


2

同様の問題がありました。.bakファイル自体、およびNETWORK SERVICEユーザーのバックアップを書き込んでいたフォルダーに書き込み権限を追加しました。アクセス許可を追加するには、変更するファイル/ディレクトリを右クリックし、[セキュリティ]タブを選択して、適切なユーザー/アクセス許可をそこに追加します。


1
適切とはどういう意味ですか?
Steam 14年

2

これは私が問題を回避するためにしたことです。

1)バックアップに移動

2)ディスクへの宛先ファイルパスを削除します

3)追加をクリックします

4)[ファイル名:]チェックボックスで、.. \ backupの後に手動でバックアップ名を入力します。ここで、Yourdb.bakはデータベースのバックアップ名です。

C:\ Program Files \ Microsoft SQL Server \ MSSQL11.MSSQLSERVER \ MSSQL \ Backup \ Yourdb.bak

5)[OK]をクリックします

お役に立てれば!


2

これが発生する理由の1つは、ローカルシステムを使用せずにMSSQLSERVERサービスを実行していることです。この問題を修正するには、次の手順を使用します。

  1. Windows + Rを使用してオープンラン
  2. services.mscと入力すると、サービスダイアログが開きます
  3. SQL Serverを検索(MSSQLSERVER)
  4. 右クリックして、プロパティをクリックします。
  5. [ログオン]タブに移動します
  6. ローカルシステムアカウントを選択し、[適用]と[OK]をクリックします
  7. 左側のパネルの[SQLサーバー(MSSQLSERVER)]を選択して[停止]リンクをクリックし、完全に停止したら再度起動します。
  8. バックアップをお楽しみください。

それが私にとってそうであったように、それがあなたを助けるのを願っています。乾杯!


1

私はそれが正確な解決策ではないことを知っていますが、外部ドライブパスを使用することでこの問題は解決します。

BACKUP DATABASE AcinsoftDB
TO DISK = 'E:\MyDB.Bak'
WITH FORMAT,
MEDIANAME = 'C_SQLServerBackups',
NAME = 'Full Backup of MyDB';

1

SQL Serverは、指定された場所にバックアップにアクセス(書き込み)できません。

まず、SQLサーバーが実行されているサービスアカウントを確認する必要があります。これは、構成マネージャーまたはServices.mscを使用して実行できます。

または

以下のクエリを使用:

SELECT  DSS.servicename,
    DSS.startup_type_desc,
    DSS.status_desc,
    DSS.last_startup_time,
    DSS.service_account,
    DSS.is_clustered,
    DSS.cluster_nodename,
    DSS.filename,
    DSS.startup_type,
    DSS.status,
    DSS.process_id FROM    sys.dm_server_services AS DSS;

次に、列service_accountを見て、書き留めます。

バックアップを取得しようとしている場所に移動します。この場合:C:\ Users \ Me \ Desktop \ Backup

右クリック->プロパティ->セキュリティ->

サービスアカウントを追加し、読み取り/書き込み権限を付与します。これで問題が解決します。



0

メッセージ3201、レベル16、状態1、行1バックアップデバイス 'C:\ Backup \ Adventure_20120720_1024AM.trn'を開けません。オペレーティングシステムエラー5(アクセスが拒否されました)。メッセージ3013、レベル16、状態1、行1のバックアップログが異常終了しています。

Cドライブのバックアップフォルダーを確認しました。新しいサービスアカウントにフルコントロールのアクセス許可があるかどうか、「Test \ Kiran」サービスアカウントにフルコントロールのセキュリティアクセス許可がないことに気付きました。

以下の手順に従って、サービスアカウントを完全に制御してください。

  1. Cドライブに移動し、バックアップフォルダを右クリックします。
  2. [セキュリティ]タブを選択します。
  3. 編集ボタンをクリックすると、新しいウィンドウが開きます。
  4. [追加]ボタンをクリックしてTest \ Kiranユーザーアカウントを入力し、[名前の確認]ボタンをクリックします。これにより、入力したユーザーが存在するかどうかが検証され、存在する場合はユーザーがウィンドウに表示されます。[OK]を選択します。
  5. 入力したユーザー名を選択し、[許可]の下の[フルコントロール]チェックボックスをオンにします。

0

ドライブへのアクセスを確認してください。最初にフォルダを1つ作成し、フォルダのプロパティに移動します。

あなたはセキュリティタブを見つけるかもしれません、あなたのユーザーIDがアクセス権を持っているかどうかチェックをクリックしてください。

あなたのIDが見つからなかった場合は、追加のボタンをクリックして、完全なアクセス権を持つユーザー名を指定してください。


0

このフォルダーを共有し、UNCパスを使用します。例:\ pc \ backups \ mydb.bak

その後、共有を停止できます。

あまりエレガントではありませんが、すべての権限の問題が解決されます(前述のように、共有する権限も与える必要があります)


0

この問題は、.BAKファイルがBitLockerで暗号化されたフォルダに一時的に保存されたときに発生しました。別のフォルダに移動した後も暗号化を保持していました。

NETWORK SERVICEアカウントはファイルを復号化できず、これは完全に有益なエラーメッセージを示しました。

.BAKファイルのBitLocker暗号化を削除すると(ファイルのプロパティで[内容を暗号化してデータを保護する]をオフにすることで)、問題が解決しました。


0

同じエラーがあります。以下の変更は私がこれを修正するのに役立ちました。

サーバーマネージャー->ツール->サービスを確認して、サービスのユーザー( "ログオン"列)を見つけなければなりませんでした:SQL Server(SQLEXPRESS)。

ローカルフォルダー(C:\ Users \ Me \ Desktop \ Backup)に移動し、書き込みアクセス許可を付与するユーザーとして "NT Service \ MSSQL $ SQLEXPRESS"を追加しました。


0

こんにちは、クエリを次のように変更する必要があります。

BACKUP DATABASE AcinsoftDB
TO DISK = 'C:\Users\Me\Desktop\Backup\MyDB.Bak'

BACKUP DATABASE AcinsoftDB
TO DISK = N'C:\Users\Me\Desktop\Backup\MyDB.Bak'

パスの前にNを追加する必要があります。


0

私の場合、バックアップファイルに名前を付けるのを忘れて、同じアクセス許可エラーが表示され続けました:/

TO DISK N'{path}\WRITE_YOUR_BACKUP_FILENAME_HERE.bak'

0

私は次の3つのステップで同じ問題を解決しました:

  1. 正常に機能している他のフォルダーパスにバックアップファイルを保存します。
  2. 異なるセキュリティタブの2つのフォルダーを表示します(下図を参照)。
  3. 正しく機能しないセキュリティタブフォルダーの権限を編集します。

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

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