wake-up-neo.net

Datenbank für Adventureworks 2012 kann nicht installiert werden - Betriebssystemfehler 5: Zugriff wird verweigert

Ich versuche, die AdventureWorks 2012-Datenbank in SQL Server 2012 zu installieren. Ich habe die MDF-Datei über diesen Link erhalten - http://msftdbprodsamples.codeplex.com/releases/view/93587

Hier ist der Name der Datei, die ich heruntergeladen habe - AdventureWorks2012_Database.Zip

Ich mache das alles auf einem Windows 7 64-Bit. 

Ich erhalte den Fehler unten:

Attach database failed for Server 'SuperPC\SQL2012'.  (Microsoft.SqlServer.Smo)

For help, click: http://go.Microsoft.com/fwlink?ProdName=Microsoft+SQL+Server&ProdVer=11.0.2100.60+((SQL11_RTM).120210-1917+)&EvtSrc=Microsoft.SqlServer.Management.Smo.ExceptionTemplates.FailedOperationExceptionText&EvtID=Attach+database+Server&LinkId=20476

ADDITIONAL INFORMATION:

An exception occurred while executing a Transact-SQL statement or batch. (Microsoft.SqlServer.ConnectionInfo)

Unable to open the physical file "C:\Databases\AdventureWorks2012_Data.mdf". Operating system error 5: "5(Access is denied.)". (Microsoft SQL Server, Error: 5120)

For help, click: http://go.Microsoft.com/fwlink?ProdName=Microsoft%20SQL%20Server&ProdVer=11.00.2100&EvtSrc=MSSQLServer&EvtID=5120&LinkId=20476
23
Steam

Der Grund für das Problem - Mdf- und Ldf-Dateien der Datenbank in einem Verzeichnis außerhalb des "offiziellen" SQL Server-Installationsordners ablegen.

Lösung - 

http://tryingmicrosoft.com/error-while-attaching-a-database-to-sql-server-2008-r2/

Fügen Sie Ihre .mdf-Datei und Ihre ldf-Datei in dieses Verzeichnis ein - C:\Programme\Microsoft SQL Server\MSSQL11.SS2012\MSSQL\DATA 

Lösungen, die das Problem NICHT gelöst haben - 

1 - Blockieren der gezippten Dateien. Es wurde auch geprüft, dass MDF- und LDF-Dateien Nicht blockiert sind. (Schritte - Rechtsklick auf Zip-Datei> Eigenschaften> Blockierung aufheben)

Unblock

2 - Führen Sie SSMS 2012 als Administrator aus.

3 - SQL-Abfrage des Formulars ausführen - 

CREATE DATABASE MyAdventureWorks 
    ON (FILENAME = 'C:\MySQLServer\AdventureWorks_Data.mdf'), 
    (FILENAME = 'C:\MySQLServer\AdventureWorks_Log.ldf') 
    FOR ATTACH; 
68
Steam

Optionen

1. Verschieben Sie .mdf und .ldf in das SQLServer-Installationsverzeichnis\Data\Ordner .__ (z. B. C:\Programme (x86)\Microsoft SQL Server\MSSQL10.SQLEXPRESS\MSSQL\DATA).

2. Führen Sie SQL Server Management Studio als Administrator aus

3. Fügen Sie dem Verzeichnis, auf das Sie zugreifen möchten, Rechte für den SQL Server-Benutzer hinzu. Ich war mir nicht sicher, welcher Benutzer korrekt war, aber es gelang mir, ihn zum Laufen zu bringen, indem dem Konto "[PCNAME]\Users" der vollständige Zugriff auf den Ordner gewährt wurde.

Schritte

Klicken Sie mit der rechten Maustaste auf den Ordner. Wählen Sie Eigenschaften aus. Wählen Sie die Registerkarte "Sicherheit". Klicken "Bearbeiten". Wählen Sie "Benutzer ([PCNAME]\Users)" aus, z. B. wenn der Name des PCs .__ war. mycomp wäre dann "Benutzer (meincomp\Benutzer)"

Klicken Sie auf das Kontrollkästchen "Zulassen" neben "Vollzugriff" unter "Berechtigungen Für Benutzer".

Siehe hier für weitere Details zu den Optionen 1 & 2 ..

CREATE FILE hat Betriebssystemfehler 5 festgestellt (Text konnte für diesen Fehler nicht abgerufen werden. Grund: 15105)

18
Cyborg

Ich habe die Berechtigungen geändert und das hat für mich funktioniert: Sicherheit -> Erweitert. Fügen Sie "NT Service\MSSQLSERVER" hinzu und geben Sie vollen Zugriff. Vererbung deaktivieren , fügen Sie sich selbst hinzu, um die Fehlerbehebung zu erleichtern. Tun Sie das sowohl für .mdf- als auch für .ldf-Dateien.

12
Mikl X

Sie müssen die .mdf-Datei nicht verschieben. Klicken Sie einfach mit der rechten Maustaste auf den Ordner, in dem sich die Datenbank befindet, und ändern Sie die Sicherheitsberechtigungen. Ich habe authentifizierte Benutzer volle Kontrolle gegeben. Dann habe ich das TSQL-Skript ausgeführt, um die Datenbank anzufügen:

CREATE DATABASE MyAdventureWorks 
    ON (FILENAME = 'C:\Adventureworks\AdventureWorks2012_Data.mdf'), 
    (FILENAME = 'C:\Adventureworks\AdventureWorks2012_Log.ldf') 
    FOR ATTACH; 

Wie Sie sehen, befinden sich meine Datenbankdateien in einem Ordner mit dem Namen Adventureworks.

7
Roger

Fehler 5 - Zugriff wird verweigert - Kommt aus den alten Tagen von DOS. Im Grunde handelt es sich um einen ACL - Fehler der Zugriffssteuerungsliste. 

Sie können Datenbanken an beliebiger Stelle ablegen, solange das SQL SERVER SERVICE-Konto Zugriff hat!

Es ist egal, bei wem Sie angemeldet sind. Es ist das Dienstkonto, das Zugriff auf das Verzeichnis und die Dateien benötigt.

Sie müssen SSMS nicht als Administrator ausführen. Ich habe die ganze Zeit Datenbanken ohne diesen Schritt angehängt.

6
CRAFTY DBA

Entfernen Sie einfach die Protokolldatei. Wenn Sie die Datenbank zum ersten Mal durch Anhängen erstellen, kann dies hilfreich sein.

Ich habe versucht, eine Datenbank durch Anhängen zu erstellen, und ich habe einen ähnlichen Screenshot erhalten

enter image description here

Dank des Artikels, den ich unten gefunden habe und nur das Protokoll entfernen musste, war es offensichtlich, aber MS bot nicht an, sich nicht für neue Datenbanken zu zeigen. Sehr schlechte Erfahrung, nicht sicher, ob es für SQL Server-lizenzierte Produkte ähnlich ist.

http://exacthelp.blogspot.in/2012/12/unable-to-open-physical-file-operating.html

6
user_v

Schritte, um die AdventureWorks2012-Datenbank in Ihre lokale MSSQL-Datenbank einzufügen:

Lösung 1: Wenn Sie unter C:\Drive in Windows über genügend Speicherplatz verfügen und die Datenbank unter C:\Drive erstellen möchten

  1. Platzieren Sie AdventureWorks2012_Data.mdf und AdventureWorks2012_log.ldf am folgenden Ort C:\Programme\Microsoft SQL Server\MSSQL11.SQLEXPRESS\MSSQL\DATA

2.Klicken Sie im Objekt-Explorer mit der rechten Maustaste auf "Datenbanken" und wählen Sie "Anhängen".

3.Klicken Sie im Dialogfeld "Datenbanken anfügen" in den anzuhängenden Datenbanken auf die Schaltfläche "Hinzufügen".

  1. Navigieren Sie zum Dateipfad MDF C:\Programme\Microsoft SQL Server\MSSQL11.SQLEXPRESS\MSSQL\DATA\AdventureWorks2012_Data.mdf. Klicken Sie unten im Dialogfeld "Datenbanken anhängen" auf "OK" .

5. Jetzt wird die Datenbank 'AdventureWorks2012' in SQL Server erstellt.

Lösung 2: Wenn unter C:\Drive in Windows nicht genügend Speicherplatz vorhanden ist

1. Verbinden Sie sich mit Ihrem lokalen Server, indem Sie den Servernamen XXX\SQLEXPRESS und Authentifizierung auswählen - "Windows-Authentifizierung".

2.Klicken Sie im Objekt-Explorer mit der rechten Maustaste auf "Datenbanken" und wählen Sie "Anhängen".

3.Klicken Sie im Dialogfeld "Datenbanken anfügen" in den anzuhängenden Datenbanken auf die Schaltfläche "Hinzufügen".

  1. Navigieren Sie zum Dateipfad MDF für z. F:\AdventureWorks2012_Database\AdventureWorks2012_Data.mdf und klicken Sie unten im Dialogfeld "Datenbanken anfügen" auf "OK".

  2. Daraufhin wird die folgende Fehlermeldung generiert: 'Beim Anfügen der Datenbank (en) ist ein Fehler aufgetreten. Klicken Sie auf den Hyperlink in der Spalte Nachricht, um weitere Informationen zu erhalten. '

  3. LÖSUNG ist: 

    i) Klicken Sie mit der rechten Maustaste auf den Ordner AdventureWorks2012_Data, und wählen Sie Eigenschaften aus.

    ii) Klicken Sie auf die Registerkarte "Sicherheit"

    iii) Wählen Sie Benutzer (xxx\Users) im Abschnitt "Gruppen- oder Benutzernamen:" aus

    iv) Klicken Sie auf die Schaltfläche "Bearbeiten"

    v) Wählen Sie Benutzer (xxx\Benutzer) im Popup 'Gruppen- oder Benutzernamen:' aus.

    vi) Aktivieren Sie das Kontrollkästchen "Vollzugriff" im Abschnitt "Berechtigungen für Benutzer".

    vii) Klicken Sie auf OK und OK.

  4. Nun zurück zum SQLsevers-Bildschirm "Datenbanken anfügen". Klicken Sie in den anzuhängenden Datenbanken auf die Schaltfläche "Hinzufügen".

  5. Navigieren Sie zum Dateipfad MDF, z. F:\AdventureWorks2012_Database\AdventureWorks2012_Data.mdf und klicken Sie unten im Dialogfeld "Datenbanken anfügen" auf "OK".

  6. Nun wird die Datenbank 'AdventureWorks2012' in SQL Server erstellt.

6
Dorababu G

Mir ist klar, dass dies eine alte Frage ist, aber für mich gab es eigentlich zwei Voraussetzungen zum Anhängen einer Datenbank außerhalb des Standardordners:

  1. Ich musste dem aktuellen Benutzer (mir) explizit den vollständigen Zugriff auf den Ordner gewähren (obwohl bereits implizite Berechtigungen vorhanden waren).
  2. Ich musste NT SERVICE\MSSQL$INSTANCENAME vollen Zugriff auf den Ordner gewähren

Ich gehe davon aus, dass Nummer 1 nicht erforderlich ist, wenn der Prozess (SSMS) erhöht ist.

2
Richard Szalay
  1. Hängen Sie die Datenbank an.
  2. Wählen Sie im Dialogfeld den Dateispeicherort von AdventureWorks.
  3. Fügen Sie die Datei hinzu.
  4. Löschen Sie die Protokolldatei, da der SQL Server später eine erstellt, sobald die Datenbank angefügt ist.
2
Rupinder Sood

Danke für frühere Vorschläge. Sie müssen die Datenbankdateien nicht in das SQL Server-Verzeichnis verschieben oder die Datenbankprotokolldatei löschen. Stattdessen erteilen Sie einfach die Berechtigung Vollzugriff für .MDF- und .LDF-Dateien für authentifizierte Benutzer. Dadurch füge ich erfolgreich sowohl AdventureWorks2012- als auch AdventureWorksLT2012-Beispieldatenbanken in SQL Server Management Studio (SSMS) hinzu.

0
Yong Yuan

Ich habe dieses Problem gelöst, indem ich die Adventure-Werke von dieser Website heruntergeladen habe 

http://msftdbprodsamples.codeplex.com/downloads/get/723031

Beachten Sie beim Herunterladen eines ZIP-Ordners für Adventure Works, dass die Datei mit _data versehen ist, z. B. AdventureWorks2012_Data.Zip, da diese Datei sowohl die MDF- als auch die LDF-Dateien enthält.

Extrahieren Sie nach dem Download den Ordnerinhalt in diese URL auf Ihrem Computer C:\Programme\Microsoft SQL Server\MSSQL11. ***\MSSQL\DATA. Gehen Sie im SQL-Server zum Objekt-Explorer und klicken Sie mit der rechten Maustaste auf die Datenbanken, um die Datenbank anzufügen. Im Dialogfeld "Anhängen" sollten Sie "Adve ********. Mdf" auswählen. Alles, was Sie von hier aus gut machen sollten.

Ich hoffe das hilft.

0
Friedrich

Ich hatte das gleiche Problem beim Versuch, eine neue Datenbank mit benutzerdefinierten Einstellungen von ASP.NET MVS zu erstellen, und ich habe einige Stunden verloren, um sie zu lösen. Schließlich bestand meine Lösung darin, in Ordneroptionen/Sicherheit meines App_Data-Ordners zu gelangen. Dann habe ich ein Konto "authentifizierte Benutzer" hinzugefügt und ihm die vollständige Kontrolle gegeben. Und das war alles. Meine Anwendung läuft gut ..

0
Kiril Dobrev

fügen Sie einfach den aktuellen Benutzer zur Registerkarte "Sicherheit" hinzu, um die vollständige Kontrolle zu erhalten und die Abfrage erneut auszuführen

0
TrayS

Geben Sie dem SQL-Dienstkonto "NT SERVICE\MSSQLSERVER" "Vollzugriff" der Datenbankdateien

Wenn Sie Zugriff auf die Serverdateienordner haben, können Sie diese Lösung ausprobieren, die für mich funktioniert hat:

/ - SQL Server 2012 unter Windows Server 2008 R2

  1. Klicken Sie mit der rechten Maustaste auf die Datenbank (mdf/ldf) oder den Ordner und wählen Sie "Eigenschaften".
  2. Wählen Sie die Registerkarte "Sicherheit" und klicken Sie auf die Schaltfläche "Bearbeiten".
  3. Klicken Sie auf die Schaltfläche "Hinzufügen".
  4. Geben Sie den Objektnamen ein, der als "NT SERVICE\MSSQLSERVER" ausgewählt werden soll, und klicken Sie auf die Schaltfläche "Namen überprüfen".
  5. Wählen Sie den MSSQLSERVER (RDN) aus und klicken Sie zweimal auf die Schaltfläche "OK".
  6. Weisen Sie diesem Dienstkonto der Datei oder dem Ordner "Vollzugriff" zu.
  7. Klicken Sie wieder im SSMS mit der rechten Maustaste auf die Datenbank und wählen Sie "Eigenschaften".
  8. Scrollen Sie unter "Optionen" zum Abschnitt "State" und ändern Sie "Database Read-Only" von "True" in "False".
0
SimplyInk

eigentlich ist es ziemlich einfach. Benennen Sie die Dateien einfach um .. __ Sie müssen nicht umziehen.

0
user763539

HINWEIS: Windows 7 Pro, SQL 2012

Nachdem ich DiskManager.msc verwendet hatte, musste ich machine_name\SERVICE mit vollständiger Kontrolle zu den .mdf- und .ldf-Dateien hinzufügen.

Mein Laptop ist Borris also: 

  1. Klicken Sie mit der rechten Maustaste auf Datei `Name -> Eigenschaften, klicken Sie auf die Registerkarte SICHERHEIT, dann auf Berechtigungen -> Hinzufügen und dann auf Namen prüfen, geben Sie Dienste ein.
  2. Um wieder herauszukommen, klicken Sie auf "OK", "OK", "OK", "OK" und "OK".

Nicht sicher, warum das Umschalten von Laufwerkbuchstaben meine Berechtigungen zurücksetzt, jedoch unter Windows Bildbeschreibung hier eingeben