Ich erhalte mehrere Fehler mit LocalDB
( Startfehler , kann keine Datenbank mit SQL Server Management Studio erstellen und auch mehrere Probleme beim Versuch, eine Sicherung wiederherzustellen), und keine der gefundenen Korrekturen helfen irgendetwas. Es scheint mir, dass alle Fehler ihre Wurzel in Berechtigungen nicht richtig eingerichtet haben.
Jetzt funktioniert ein einfaches DDL-Tabellenerstellungsskript in SQL Server Management Studio einwandfrei und erstellt die Datenbank im Stammverzeichnis des Ordners meines Benutzerkontos ( wie hier erläutert ). Der Ordner Instances (der sich D:\Users\[My name]\AppData\Local\Microsoft\Microsoft SQL Server Local DB\Instances
trotz der Installation von SQL Server Express mit Advanced Services unter befindet), in dem der Ordner DATA an einem anderen Speicherort angegeben wurde, in dem nur Standarddateien von SQL Server Express .mdf
gespeichert werden, jedoch keine LocalDB
Instanzen), scheint (im Gegensatz zum Konto) problematisch in Bezug auf Berechtigungen zu sein root) und damit sich meine DB-Dateien an einem Ort innerhalb meiner Projekte befinden, möchte ich den Ordner Instances an einen anderen Ort verschieben. Ist das möglich? Ich habe noch nicht einmal einen entsprechenden Registrierungseintrag gefunden.
Ich verwende SQL Server Express 2012 und SSMS der gleichen Version (neueste Updates installiert).
Jede Hilfe wäre dankbar.
Bearbeiten: Die zuvor erwähnte Seite "Datenbankeinstellungen" von KookieMonster hat einen Fehler für mich ausgelöst, da dort keine Konfiguration bearbeitet oder angezeigt werden konnte. Ich habe Windows Update erneut nach Updates suchen lassen, und es gab einige Updates für SQL Server Express, die nicht installiert wurden (obwohl ich sicher bin, dass ich zuvor alles für die Installation ausgewählt habe), also habe ich sie installiert. Dadurch konnte ich auf die Einstellungsseite gehen.
Ich habe versucht, den Stammordner der LocalDB-Instanz an einer anderen Stelle einzurichten, erhalte jedoch für jeden Ordner, den ich ausprobiert habe, einen Zugriffsverweigerungsfehler
Änderung fehlgeschlagen für Einstellungen 'Microsoft.SqlServer.Management.Smo.ObjectKeyBase'. (Microsoft.SqlServer.Smo)
------------------------------ ZUSÄTZLICHE INFORMATION:
Beim Ausführen einer Transact-SQL-Anweisung oder eines Stapels ist eine Ausnahme aufgetreten. (Microsoft.SqlServer.ConnectionInfo)
RegCreateKeyEx () hat den Fehler 5 "Zugriff verweigert" zurückgegeben. (Microsoft SQL Server, Fehler: 22002)
Ich bekomme das auch wenn der Ordner Vollzugriff für Jedermann eingestellt hat! Noch amüsanter ist, dass der einzige Ordner, der funktioniert, für einen als Standard festgelegten Ordner (Stammordner des Benutzerkontos) keine besonderen Berechtigungen gelten - nur die, die mein Benutzer hat (genau wie für jeden anderen Ordner, den ich festgelegt habe). Tatsächlich bedeutet dies, dass alle Dateien meiner LocalDB-Datenbanken im Stammordner meines Kontos gespeichert werden.
Antworten:
Siehe meinen Kommentar oben. Ich habe Process Monitor zum Verfolgen des Registrierungszugriffs verwendet und festgestellt, dass der Zugriff verweigert wurde, während ich versuchte zu schreiben:
3:16:40.8405491 PM sqlservr.exe 8756 RegCreateKey HKLM\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL11E.LOCALDB\MSSQLServer ACCESS DENIED Desired Access: Write
Ich habe mich darum gekümmert, indem ich den Registrierungseditor geöffnet und allen den vollständigen Zugriff darauf gewährt habe
HKLM\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL11E.LOCALDB\MSSQLServer
. Dann habe ich den Standardspeicherort geändert und den Zugriff für alle Benutzer entfernt, sobald dies geschehen ist. Dies machte die folgenden zusätzlichen Schlüssel, die vorher nicht da waren:DefaultData
DefaultLog
BackupDirectory
quelle