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
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)
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;
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 ..
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.
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
.
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.
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
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
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
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".
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".
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".
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. '
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.
Nun zurück zum SQLsevers-Bildschirm "Datenbanken anfügen". Klicken Sie in den anzuhängenden Datenbanken auf die Schaltfläche "Hinzufügen".
Navigieren Sie zum Dateipfad MDF, z. F:\AdventureWorks2012_Database\AdventureWorks2012_Data.mdf und klicken Sie unten im Dialogfeld "Datenbanken anfügen" auf "OK".
Nun wird die Datenbank 'AdventureWorks2012' in SQL Server erstellt.
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:
NT SERVICE\MSSQL$INSTANCENAME
vollen Zugriff auf den Ordner gewährenIch gehe davon aus, dass Nummer 1 nicht erforderlich ist, wenn der Prozess (SSMS) erhöht ist.
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.
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.
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 ..
fügen Sie einfach den aktuellen Benutzer zur Registerkarte "Sicherheit" hinzu, um die vollständige Kontrolle zu erhalten und die Abfrage erneut auszuführen
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
eigentlich ist es ziemlich einfach. Benennen Sie die Dateien einfach um .. __ Sie müssen nicht umziehen.
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:
Nicht sicher, warum das Umschalten von Laufwerkbuchstaben meine Berechtigungen zurücksetzt, jedoch unter Windows Bildbeschreibung hier eingeben