it-swarm.com.de

SQL Server-Betriebssystemfehler 5: "5 (Zugriff wird verweigert.)"

Ich fange an, SQL zu lernen, und ich habe ein Buch, das eine Datenbank enthält, an der gearbeitet werden kann. Die folgenden Dateien befinden sich in dem Verzeichnis, aber das Problem ist, dass beim Ausführen der Abfrage dieser Fehler angezeigt wird:

Meldung 5120, Ebene 16, Status 101, Zeile 1 Die physische Datei kann nicht geöffnet werden "C:\Murach\SQL Server 2008\Datenbanken\AP.mdf". Betriebssystemfehler 5: "5 (Zugriff wird verweigert.)".

   CREATE DATABASE AP
      ON PRIMARY (FILENAME = 'C:\Murach\SQL Server 2008\Databases\AP.mdf')
      LOG ON (FILENAME =     'C:\Murach\SQL Server 2008\Databases\AP_log.ldf')
      FOR ATTACH
    GO

In dem Buch sagt der Autor, dass es funktionieren sollte, aber es funktioniert nicht in meinem Fall. Ich habe gesucht, aber ich weiß nicht genau, was das Problem ist, deshalb habe ich diese Frage gestellt.

127
dijai jijfs

Das SQL Server-Datenbankmodul-Dienstkonto muss über Berechtigungen zum Lesen/Schreiben in den neuen Ordner verfügen.

Check out this

Um das zu beheben, habe ich Folgendes getan:

Die Administratorengruppe wurde den Dateisicherheitsberechtigungen mit .__ hinzugefügt. Vollzugriff für die Datendatei (S :) und die Protokolldatei (T :).

Hat die Datenbank angehängt und es funktioniert gut.

enter image description here

enter image description here

119
Rahul Tripathi

Ein alter Beitrag, aber hier ein Schritt für Schritt, der für SQL Server 2014 unter Windows 7 funktioniert hat:

  • Systemsteuerung ->
  • System und Sicherheit ->
  • Verwaltungstools ->
  • Dienstleistungen ->
  • Doppelklicken Sie auf SQL Server (SQLEXPRESS) -> Klicken Sie mit der rechten Maustaste auf Eigenschaften
  • Wählen Sie die Registerkarte Anmelden
  • Wählen Sie "Lokales Systemkonto" aus (Standardeinstellung war ein unvollständiges Windows-Systemkonto).
  • -> OK
  • rechtsklick, Stop
  • rechtsklick, Start

Voilá! 

Ich denke, das Festlegen des Anmeldekontos war möglicherweise eine Option in der Installation, aber wenn dies der Fall war, war es nicht die Standardeinstellung und konnte leicht übersehen werden, wenn Sie dieses Problem nicht bereits kannten.

82
mickeyf

Hierbei handelt es sich um ein Windows-Problem, bei dem SQL Server nicht über die entsprechende Berechtigung für den Ordner verfügt, der die .bak-Datei enthält, und daher diesen Fehler. 

Die einfachste Lösung ist das Kopieren der .bak-Datei an den Standardspeicherort für die SQL-Sicherung, der über alle erforderlichen Berechtigungen verfügt. Sie müssen sich mit nichts anderem beschäftigen. In SQL SERVER 2012 befindet sich dieser Speicherort

D:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\Backup (SQL 2012)
C:\Program Files\Microsoft SQL Server\MSSQL12.MSSQLSERVER\MSSQL\Backup (SQL 2014)
C:\Program Files\Microsoft SQL Server\MSSQL13.SQLEXPRESS\MSSQL\Backup (SQL 2016)
40
Hammad Khan

Um das Problem mit verweigerten Zugriff zu umgehen, habe ich SSMS als Administrator gestartet. Dadurch konnte ich eine Datenbank von meinem lokalen Laufwerk aus anhängen. Die Datenbank wurde in einer anderen SQL- und Windows-Instanz erstellt.

33
JayKayOf4

Ja, es ist richtig. Zuerst sollten Sie Ihr Dienstkonto von sqlserver herausfinden. Sie können es im Task-Manager anzeigen, wenn Sie gleichzeitig die Tastenkombination Strg + Alt + Entf drücken :\Murach\SQL Server 2008\Databases "zum Dienstkonto.

12
Tim

Das Problem ist auf fehlende Berechtigungen für SQL Server zum Zugriff auf die MDF- und LDF-Dateien zurückzuführen. Alle diese Verfahren funktionieren:

  1. sie können das Startbenutzerkonto des MSSQLSERVER-Dienstes direkt mit dem Benutzerkonto ändern, das über bessere Berechtigungen für die Dateien verfügt. Versuchen Sie dann, die Datenbank anzufügen.
  2. Oder Sie können den Benutzer der Datei auf der Registerkarte "Sicherheit" der Eigenschaften von mdf- und ldf-Dateien mit aktivierten Lese- und Schreibberechtigungen zuweisen.
  3. Starten Sie mit dem Windows-Administratorkonto und öffnen Sie SQL Server mit der Option Als Administrator ausführen. Versuchen Sie, sich mit der Windows-Authentifizierung anzumelden, und versuchen Sie, die Datenbank anzuhängen.
9
Chandra Sekhar

ich hatte dieses Problem. Führen Sie einfach den SQL Server als Administrator aus 

4
Aref Bozorgmehr

Ich löse dieses Problem, indem ich die Full control-Berechtigung für .mdf- und .ldf-Dateien für die Users-Gruppe hinzufügt.

Die tatsächlichen Serverberechtigungen spielen zu diesem Zeitpunkt keine Rolle. alles sieht in Ordnung aus. SQL Server selbst benötigt Ordnerberechtigungen.
Abhängig von Ihrer Version können Sie SERVERNAME $ MSSQLSERVER-Berechtigungen hinzufügen, um Ihren Ordner zu berühren. Andernfalls muss es sich im Standardverzeichnis BACKUP befinden (entweder dort, wo Sie es installiert haben, oder standardmäßig in c:\programfiles (x)\MSSQL\BACKUP).

4
Claudia

Für mich wurde es mit dem SQL Server Management Studio auf folgende Weise gelöst. __- Anmelden als Administrator (Ich habe mich als Windows-Authentifizierung angemeldet). -Abmelden als Administrator - Melden Sie sich als normaler Benutzer an

3
RotatingWheel

Selbst wenn Sie die folgenden Schritte ausführen, KÖNNEN Sie dieselbe Fehlermeldung erhalten.

1. login as SA user (SSMS)
2. Edit the file permissions to say "everyone" full access (windows folder)
3. Delete the Log file (Windows Exploring  (this was what I had done per advise from some msdn forum) 

Ich habe den Erlaubnisfehler immer noch ERHALTEN, aber dann habe ich festgestellt, dass auf dem Bildschirm Anhängen im unteren Bereich noch die LOG-Datei angezeigt wurde und die Fehlermeldung unverändert blieb.

Ich hoffe, das hilft jemandem, der dasselbe getan hat.

2
Tom Stickel

Sehr einfache Lösung.

  1. Melden Sie sich mit dem Systemadministrator an
  2. kopieren Sie Ihre MDF- und LDF-Dateien in "C:\Programme (x86)\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\DATA".
  3. Jetzt von dort anhängen, wird es funktionieren
0
AmitykSharma

Wenn Sie diesen Fehler in einer .MDF-Datei im APP_DATA-Ordner (oder wo auch immer Sie ihn für ein Visual Studio-Projekt ablegen) für ein Visual Studio-Projekt erhalten, müssen Sie einfach die Berechtigungen aus dem vorhandenen DATA-Ordner hier kopieren (ich verwende SQL Express 2014 zur Unterstützung einer älteren App): 

C:\Program Files\Microsoft SQL Server\MSSQL12.SQLEXPRESS2014\MSSQL\DATA

(Hinweis: Ihr tatsächlicher Installationspfad kann variieren - insbesondere, wenn Ihr Instanzname unterschiedlich ist.)

Doppelklicken Sie zuerst als Administrator auf den Ordner DATA, um sich zu vergewissern, dass Sie Zugriff haben. Öffnen Sie dann die Eigenschaften des Ordners, und kopieren Sie die gleichen Eigenschaften für den Ordner APP_DATA. In meinem Fall war der fehlende Benutzer MSSQL$SQLEXPRESS2014 (da ich die Instanz SQLEXPRESS2014 benannt habe - Ihre kann anders sein). Dies ist auch der Benutzername für den SQL Server-Dienst.

0
James Wilkins

Ich habe das Entity-Framework in meiner Anwendung verwendet und hatte dieses Problem. Ich habe alle Berechtigungen in Ordnern und Windows-Diensten festgelegt und funktioniert nicht. Danach startet ich meine Anwendung als Administrator. und das funktioniert gut.

0
Ali Yousefie