Ich versuche, das folgende Skript in SQL Server Management Studio auszuführen:
USE [master]
GO
CREATE DATABASE [test1] ON PRIMARY (
NAME = N'test1',
FILENAME =
N'C:\Program Files\Microsoft SQL Server\MSSQL10.SQLEXPRESS\MSSQL\DATA\test1.mdf',
SIZE = 70656KB , MAXSIZE = UNLIMITED, FILEGROWTH = 1024KB)
LOG ON (
NAME = N'test1_log',
FILENAME =
N'C:\Program Files\Microsoft SQL Server\MSSQL10.SQLEXPRESS\MSSQL\DATA\test1_log.ldf',
SIZE = 164672KB , MAXSIZE = 2048GB , FILEGROWTH = 10%)
Aber ich bekomme den Fehler:
Meldung 5123, Ebene 16, Status 1, Zeile 2 Beim Versuch, die physische Datei "C: \ Programme \ Microsoft SQL Server \ MSSQL10.SQLEXPRESS \ MSSQL \" zu öffnen oder zu erstellen, ist der
Betriebssystemfehler 5 (Zugriff verweigert) aufgetreten. DATA \ test1.mdf '.Meldung 1802, Ebene 16, Status 4, Zeile 2
ERSTELLEN DER DATENBANK fehlgeschlagen. Einige aufgelistete Dateinamen konnten nicht erstellt werden. Überprüfen Sie die zugehörigen Fehler.
Haben Sie bereits alle Rollenberechtigungen für meinen Benutzer, haben Sie eine Idee, was falsch ist?
sql-server
sql-server-2012
Thiagocfb
quelle
quelle
CREATE DATABASE [test1]; GO
?Antworten:
Sie erhalten einen Berechtigungsfehler. Das Konto, auf dem der SQL Server ausgeführt wird, verfügt nicht über die erforderlichen Rechte für den Ordner, der die Datenbankdateien enthält.
Sie müssen dem Konto, auf dem SQL Server ausgeführt wird (nicht Ihrem Konto) die vollständige Kontrolle über C: \ Programme \ Microsoft SQL Server \ MSSQL10.SQLEXPRESS \ MSSQL \ DATA geben.
quelle
Network Service
Konto ausgeführt. Daher müssen die entsprechenden Rechte für dieses Konto in den entsprechenden Verzeichnissen geändert werden, wenn dies auch auf Ihrem PC der Fall ist.Basierend auf unserem Kommentarthread klingt es so, als ob Sie sich während der Installation etwas seitwärts bewegt haben. Mit dem Installationsprogramm können Sie Ihr Standarddatenverzeichnis auswählen und (ich gehe davon aus ) die entsprechenden Berechtigungen für dieses Verzeichnis für das von Ihnen angegebene Dienstkonto festlegen.
In Ihrer
CREATE DATABASE
Anweisung geben Sie einen Speicherort an, aber war dieser Speicherort derjenige, der im ursprünglichen Setup angegeben wurde? Hat sich das Dienstkonto geändert?Eine Möglichkeit, dies zu testen, besteht darin, einfach ein generisches Programm auszuführen
Wenn derselbe Fehler auftritt, hat sich möglicherweise das Dienstkonto geändert oder es wurden Änderungen an den NTFS-Berechtigungen vorgenommen.
Ein Auflösungspfad (auch basierend auf einer Kommentarzeichenfolge) dient zur Bestätigung, dass der Dienst, auf dem SQL Server ausgeführt wird, über R / W-Berechtigungen für den angegebenen Pfad verfügt. Um dies zu tun:
Start-> Ausführen->
services.msc
-> Blättern Sie durch die Liste der Dienste, bis Sie die Registerkarte SQL Server-> Rechtsklick-> Eigenschaften-> Anmelden findenStellen Sie nun sicher, dass das Konto über die entsprechende Berechtigung für dieses Verzeichnis verfügt, um die erforderlichen Aktionen auszuführen.
quelle
Scheint, dass der angegebene Pfad eine falsche Anzahl von Leerzeichen enthält, sodass der Ordnerbaum nicht übereinstimmt.
SQL Server erstellt keinen nicht existierenden Pfad.
Bearbeiten :
Ihr ursprünglicher Beitrag lautet:
und ich denke, das sind keine existierenden Pfade, und da sie von Doppelpunkten umgeben sind, ist es wichtig, wie viele Räume es gibt.
quelle
Microsoft SQL
undServer
, und das war mir fremd, weil es normalerweise nur ein Leerzeichen sein sollte. Es ist jetzt nicht sichtbar, da dein Beitrag von @marc_sDas obige Skript, das Sie in Ihrem Fragenabschnitt posten, ist korrekt. Möglicherweise ist der in FILENAME angegebene Dateipfad falsch.
Bitte verwenden Sie das unten angegebene Skript. Es funktioniert einfach und stellt dann sicher, dass der Dateipfad, den Sie in Ihrem Skript verwenden, korrekt ist.
quelle