Sicherungsgerät kann nicht geöffnet werden. Betriebssystemfehler 5

138

Unten finden Sie die Abfrage, mit der ich .bakmeine Datenbank sichern (erstellen ) kann.

Wenn ich es jedoch ausführe, wird immer folgende Fehlermeldung angezeigt:

Meldung 3201, Ebene 16,
Status 1, Zeile 1 Sicherungsgerät 'C: \ Benutzer \ Me \ Desktop \ Backup \ MyDB.Bak' kann nicht geöffnet werden. Betriebssystemfehler 5 (Zugriff verweigert.).

Meldung 3013, Ebene 16,
Status 1, Zeile 1 Die Sicherungsdatenbank wird abnormal beendet.

Das ist meine Frage:

BACKUP DATABASE AcinsoftDB
TO DISK = 'C:\Users\Me\Desktop\Backup\MyDB.Bak'
WITH FORMAT,
MEDIANAME = 'C_SQLServerBackups',
NAME = 'Full Backup of MyDB';
Smiley
quelle
Nun, die Fehlermeldung ist ziemlich klar, nicht wahr? Als welcher Benutzer läuft das Programm? Existiert die Bak-Datei? Können Sie manuell darauf zugreifen?
Pekka
1
Sollten wir annehmen, dass dies für SQL Server aus dem Dateipfad gilt, da Sie das Produkt nicht in die Tags oder den Titel eingefügt haben?
Powerlord
Ich konnte diese Abfrage ausführen, bevor ich meinen Laptop neu formatierte, wenn dies hilfreich ist. Dies ist SQL Server 2008 und ich arbeite als Administrator. Die Bak-Datei existiert nicht, da ich sie gerade mit dieser Abfrage erstelle.
Smiley
@ Smiley Face: Sie müssen die SQL-Datei über Ihr lokales Netzwerk lesen, nicht über Ihr Netzwerk. Dies bedeutet, dass Sie zuerst die SQL-Datei aus dem Netzwerk auf Ihr lokales Laufwerk verschieben und wiederherstellen müssen.
mrjimoy_05
sqlbak.com/blog/…
Shiwangini

Antworten:

234

Ja, ich habe gerade diesen Treffer erzielt.

Suchen Sie in den Windows-Diensten. Start> Administration> Dienste

Suchen Sie den Dienst in der Liste mit dem Namen: SQL Server (MSSQLSERVER) suchen Sie nach der Spalte "Anmelden als" (müssen Sie hinzufügen, wenn er nicht in der Liste vorhanden ist).

Dies ist das Konto, das Sie benötigen, um dem Verzeichnis Berechtigungen zu erteilen. Klicken Sie mit der rechten Maustaste auf Explorer> Eigenschaften> Freigaben (und Sicherheit).

HINWEIS : Denken Sie daran, Berechtigungen für das eigentliche Verzeichnis UND für die Freigabe zu erteilen, wenn Sie über das Netzwerk gehen.

Bewerben Sie sich und warten Sie, bis sich die Berechtigungen übertragen haben. Versuchen Sie die Sicherung erneut.

ANMERKUNG 2 : Wenn Sie über das Netzwerk sichern und Ihr SQL als "Lokaler Dienst" ausgeführt wird, haben Sie Probleme. Sie können versuchen, Berechtigungen zuzuweisen, oder es ist einfacher, lokal zu sichern und außerhalb von SQL Server zu kopieren ( eine Stunde später).

ANMERKUNG 3 : Wenn Sie als Netzwerkdienst ausgeführt werden, erkennt der Remotecomputer manchmal die Netzwerkdienstleistung auf Ihrem SQL Server nicht. In diesem Fall müssen Sie Berechtigungen für den eigentlichen Computer selbst hinzufügen, z. MyServer $.

Robin Vessey
quelle
20
Die Berechtigungen / add / advanced haben den Benutzer nicht in der Liste gefunden, aber ich habe "NT Service \ MSSQLSERVER" eingefügt und es hat wie ein Champion funktioniert.
A
3
Deckt das Hinzufügen der Berechtigung "Jeder" zu einem Ordner dies ab?
DevDave
3
Kommt drauf an, wenn es sich um die wirklich öffentliche, nicht authentifizierte handelt, dann ja. Wenn es sich um eine "authentifizierte" handelt, ist der LOKALE SERVICE auf einem Remote-Computer normalerweise nicht qualifiziert ... aber möchten Sie wirklich jedem Zugriff gewähren, für uns ist das eine beinahe entlassene Straftat.
Robin Vessey
1
Hat bei mir nicht funktioniert und ich sichere nur auf C: \ temp \. Der Bildschirm " Ordnerberechtigungen" erkennt die vom Dienst NT Service \ MSSQLSERVER verwendete Anmeldung einfach nicht , selbst wenn sie wie von @Mark A vorgeschlagen eingefügt wird. Gibt es ein gutes alternatives Konto für diesen Dienst?
MGOwen
8
Arbeitete für mich, tolle Lösung! Ich verwende SQL Server Express 2014, daher müssen Sie 'NT Service \ MSSQL $ SQLEXPRESS' eine Schreibberechtigung erteilen.
mikhail-t
11

Gehen Sie zum SQL Server-Ordner im Startmenü und klicken Sie auf Konfigurationstools. Wählen Sie SQL Server-Konfigurationsmanager aus. Ändern Sie bei SQL Server-Diensten auf der gewünschten Instanz das (Anmelden als) in das lokale System

Abuleen
quelle
7

Das SQL Server-Dienstkonto verfügt nicht über Berechtigungen zum Schreiben in den Ordner C:\Users\Kimpoy\Desktop\Backup\

Martin Smith
quelle
22
Wie erteile ich dem SQL Server-Dienstkonto Berechtigungen für den Zugriff auf diesen Ordner? :)
Smiley
6

Ich hatte dieses Problem auch kürzlich, aber ich habe den Sicherungsjob von Server A ausgeführt, aber die zu sichernde Datenbank befand sich auf Server B auf einer Dateifreigabe auf Server C. Wenn der Agent auf Server A Server B anweist, eine Sicherung t auszuführen Der Befehl -sql ist das Dienstkonto, unter dem SQL auf SERVER B ausgeführt wird und das versucht, die Sicherung auf Server C zu schreiben.

Denken Sie daran, dass das Dienstkonto des SQL-Servers, der den eigentlichen Befehl BACKUP DATABASE ausführt, Berechtigungen für das Dateisystem und nicht für den Agenten benötigt.

Jason
quelle
4

Ich habe das nur selbst durchgemacht. Ich hatte sichergestellt, dass mein MSSQLSERVER-Login-Benutzer dies hatte, full accessaber es verursachte immer noch Probleme. Es hat nur funktioniert, wenn ich das Ziel in das Stammverzeichnis von C verschoben habe. Noch wichtiger ist, dass ich aus einem Benutzerordner heraus war (obwohl ich eine Freigabe mit vollständigen Berechtigungen hatte - habe sogar "Jeder" als Test ausprobiert).

Ich weiß nicht, ob ich mein Problem als "behoben" betrachte, aber es funktioniert.

Nur eine Information für alle anderen Benutzer, die auf diesen Thread stoßen.

DNK
quelle
1
Ich denke, dies wird durch Unternehmensdomänen verursacht, deren Benutzerpfade sich auf Netzwerklaufwerken befinden, sodass der Benutzer unabhängig vom Computer, auf dem er sich anmeldet, transparent auf sie zugreifen kann. Wie diese Situation: superuser.com/a/730519
Bon
@ Bon Danke! Dies hat das Problem für mich gelöst. Der Pfad, auf dem ich die Sicherungsdatei hatte, war tatsächlich ein Netzwerkpfad.
JonM
4

Ich habe das gleiche Problem mit SQL Express 2014 SP1 unter Windows 10.

Lösung welche funktioniert

  1. Öffnen Sie den Dienst, indem Sie Dienste eingeben
  2. Suchen und öffnen Sie den SQL Server (SQLExpress).
  3. Gehen Sie zur Registerkarte LogOn
  4. Wählen Sie Lokales Systemkonto (Überprüfen Sie auch, ob Dienste mit dem Desktop interagieren dürfen.)
  5. OK klicken . Beenden Sie den Dienst. Starten Sie den Dienst neu.
  6. Problem gelöst
Sawarkar vikas
quelle
3

Um herauszufinden, welchen Benutzer Sie für den Wiederherstellungsprozess benötigen, können Sie die folgenden Schritte ausführen:

Sie müssen zu Ihrem Server gehen, auf dem SQL Server installiert ist. Suchen Sie nach SQL Server Configuration Manager

Geben Sie hier die Bildbeschreibung ein

Als Nächstes müssen Sie zu "SQL Server-Dienste" wechseln.

Geben Sie hier die Bildbeschreibung ein

Unter Ihrer SQL Server-Instanz (MSSQLSERVER) befindet sich ein Konto mit der Spalte "Anmelden als". In meinem Fall handelt es sich um NT Service \ MSSQLSERVER .

Dies ist das Konto, das Sie auf der Registerkarte "Sicherheit" Ihres Quellspeicherortes ".bak" hinzufügen und diesem Benutzer die Berechtigung "Lesen" erteilen müssen, damit die Sicherungsdatei gelesen werden kann.

Angenommen, Ihre Sicherungsdatei befindet sich im Ordner "D: \ Shared". Dann müssen Sie folgende Berechtigungen erteilen:

Geben Sie hier die Bildbeschreibung ein

Raghav
quelle
2

Ich hatte ein ähnliches Problem. Ich habe der .bak-Datei selbst und meinem Ordner, in den ich die Sicherung für den NETWORK SERVICE-Benutzer geschrieben habe, Schreibberechtigungen hinzugefügt. Um Berechtigungen hinzuzufügen, klicken Sie einfach mit der rechten Maustaste auf die Datei / das Verzeichnis, die Sie ändern möchten, wählen Sie die Registerkarte Sicherheit und fügen Sie dort die entsprechenden Benutzer / Berechtigungen hinzu.

Eric Bernier
quelle
1
was meinst du mit angemessen?
Steam
2

Hier ist, was ich getan habe, um das Problem zu umgehen.

1) Gehen Sie zur Sicherung

2) Entfernen Sie den Zieldateipfad zur Festplatte

3) Klicken Sie auf Hinzufügen

4) Geben Sie im Kontrollkästchen Dateiname: den Sicherungsnamen nach .. \ backup wie unten manuell ein, wobei Yourdb.bak der Name der Datenbanksicherung ist

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

5) Klicken Sie auf OK

Hoffe das hilft!

dpen82
quelle
2

Einer der Gründe dafür ist, dass Sie Ihren MSSQLSERVER-Dienst nicht auf einem lokalen System ausführen. Führen Sie die folgenden Schritte aus, um dieses Problem zu beheben.

  1. Öffnen Sie den Lauf mit Windows + R.
  2. Geben Sie services.msc ein, und ein Dienstedialog wird geöffnet
  3. Suchen Sie SQL Server (MSSQLSERVER)
  4. Klicken Sie mit der rechten Maustaste und klicken Sie auf Eigenschaften.
  5. Gehen Sie zur Registerkarte Anmelden
  6. Wählen Sie das lokale Systemkonto und klicken Sie auf "Übernehmen" und "OK".
  7. Klicken Sie im linken Bereich auf den Link Stop, indem Sie "SQL Server (MSSQLSERVER)" auswählen und erneut starten, sobald er vollständig gestoppt ist.
  8. Viel Spaß beim Backup.

Hoffe es hilft dir gut, so wie es mir getan hat. Prost!

Gaurav Amatya
quelle
1

Ich weiß, dass es keine exakte Lösung ist, aber die Verwendung externer Laufwerkspfade löst dieses Problem.

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

SQL Server kann nicht auf die Sicherung an dem angegebenen Speicherort zugreifen (diese schreiben).

Zuerst müssen Sie das Dienstkonto überprüfen, auf dem der SQL Server ausgeführt wird. Dies kann mithilfe von Configuration Manager oder Services.msc erfolgen.

oder

Verwenden Sie die folgende Abfrage:

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;

Schauen Sie sich nun die Spalte service_account an und notieren Sie sie.

Wechseln Sie zu dem Speicherort, an dem Sie die Sicherung durchführen möchten. In Ihrem Fall: C: \ Benutzer \ Me \ Desktop \ Sicherung

Rechtsklick -> Eigenschaften -> Sicherheit ->

Fügen Sie das Dienstkonto hinzu und geben Sie Lese- / Schreibberechtigungen an. Dadurch wird das Problem behoben.

Ramakant Dadhichi
quelle
0

Meldung 3201, Ebene 16, Status 1, Zeile 1 Sicherungsgerät 'C: \ Backup \ Adventure_20120720_1024AM.trn' kann nicht geöffnet werden. Betriebssystemfehler 5 (Zugriff verweigert.). Meldung 3013, Ebene 16, Status 1, Zeile 1 Das Sicherungsprotokoll wird abnormal beendet.

Ich habe den Sicherungsordner auf Laufwerk C überprüft. Hat das neue Dienstkonto die Vollzugriffsberechtigung oder nicht? Ich habe festgestellt, dass das Dienstkonto "Test \ Kiran" nicht über die Vollzugriffssicherheitsberechtigung verfügt.

Befolgen Sie die folgenden Schritte, um dem Dienstkonto die volle Kontrolle zu geben:

  1. Gehen Sie zu Laufwerk C, klicken Sie mit der rechten Maustaste auf Sicherungsordner.
  2. Wählen Sie die Registerkarte Sicherheit.
  3. Klicken Sie auf die Schaltfläche Bearbeiten. Das neue Fenster wird geöffnet.
  4. Klicken Sie auf die Schaltfläche Hinzufügen, geben Sie das Benutzerkonto Test \ Kiran ein und klicken Sie auf die Schaltfläche Name überprüfen. Dadurch wird überprüft, ob der eingegebene Benutzer vorhanden ist oder nicht. Wenn er vorhanden ist, wird der Benutzer im Fenster angezeigt. Wählen Sie OK.
  5. Aktivieren Sie den eingegebenen Benutzernamen und aktivieren Sie das Kontrollkästchen Vollzugriff unter Zulassen.
user2459051
quelle
0

Bitte überprüfen Sie den Zugriff auf Laufwerke. Erstellen Sie zunächst einen Ordner und gehen Sie zu den Ordnereigenschaften.

Möglicherweise finden Sie die Registerkarte Sicherheit. Klicken Sie darauf, um zu überprüfen, ob Ihre Benutzer-ID Zugriff hat oder nicht.

Wenn Sie Ihre ID nicht finden konnten, klicken Sie auf die Schaltfläche "Hinzufügen" und geben Sie den Benutzernamen mit vollem Zugriff an.

user2703575
quelle
0

Geben Sie diesen Ordner frei und verwenden Sie den UNC-Pfad. Beispiel: \ pc \ backups \ mydb.bak

Dann können Sie die Freigabe beenden.

Nicht sehr elegant, aber es löst alle Berechtigungsprobleme (Sie müssen auch Berechtigungen zum Teilen erteilen, wie oben erwähnt).

Gennady G.
quelle
0

Dieses Problem trat auf, als die .BAK-Datei vorübergehend in einem mit BitLocker verschlüsselten Ordner gespeichert wurde. Die Verschlüsselung wurde beibehalten, nachdem sie in einen anderen Ordner verschoben wurde.

Das NETWORK SERVICE-Konto konnte die Datei nicht entschlüsseln und gab diese durch und durch informative Fehlermeldung aus.

Durch Entfernen der BitLocker-Verschlüsselung (durch Deaktivieren von "Inhalte zum Sichern von Daten verschlüsseln" in den Dateieigenschaften) in der BAK-Datei wurde das Problem behoben.

Eric J.
quelle
0

Ich habe den gleichen Fehler. Die folgenden Änderungen haben mir geholfen, dies zu beheben.

Ich musste Server Manager-> Tool-> Dienste überprüfen und den Benutzer (Spalte "Anmelden als") für den Dienst finden: SQL Server (SQLEXPRESS).

Ich ging zum lokalen Ordner (C: \ Users \ Me \ Desktop \ Backup) und fügte als Benutzer "NT Service \ MSSQL $ SQLEXPRESS" hinzu, um Schreibberechtigungen zu erteilen.

Hiren Parghi
quelle
0

Hallo, Sie müssen die Abfrage ändern von:

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

zu

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

Sie müssen ein N vor dem Pfad hinzufügen, was für mich funktioniert.

Robert Peter Bronstein
quelle
0

In meinem Fall habe ich vergessen, die Sicherungsdatei zu benennen, und es gab mir immer wieder den gleichen Berechtigungsfehler: /

TO DISK N'{path}\WRITE_YOUR_BACKUP_FILENAME_HERE.bak'
Herr Brigante
quelle