Próbuję wykonać następujący skrypt w SQL Server Management Studio:
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%)
Ale pojawia się błąd:
Msg 5123, poziom 16, stan 1, wiersz 2
UTWÓRZ PLIK napotkał błąd systemu operacyjnego 5 (odmowa dostępu.)
Podczas próby otwarcia lub utworzenia fizycznego pliku
„C: \ Program Files \ Microsoft SQL Server \ MSSQL10.SQLEXPRESS \ MSSQL \ DANE \ test1.mdf ”.Wiadomość 1802, poziom 16, stan 4, wiersz 2
Tworzenie bazy danych nie powiodło się. Nie można utworzyć niektórych wymienionych nazw plików. Sprawdź powiązane błędy.
Mam już wszystkie uprawnienia do roli dla mojego użytkownika, jakieś pomysły na to, co jest nie tak?
sql-server
sql-server-2012
thiagocfb
źródło
źródło
CREATE DATABASE [test1]; GO
?Odpowiedzi:
Otrzymujesz błąd uprawnień. Konto, na którym działa SQL Server, nie ma wymaganych uprawnień do folderu, który będzie zawierał pliki bazy danych.
Musisz dać konto, na którym działa SQL Server (nie twoje konto), pełną kontrolę nad C: \ Program Files \ Microsoft SQL Server \ MSSQL10.SQLEXPRESS \ MSSQL \ DATA.
źródło
Network Service
kontem. Więc odpowiednie prawa będą musiały zostać zmodyfikowane w odpowiednich katalogach dla tego konta, jeśli tak jest również na komputerze.W oparciu o nasz wątek komentujący wygląda na to, że podczas instalacji mogłeś się trochę przewrócić. Instalator pozwala wybrać domyślny katalog danych i ( zakładam , że ) ustawia odpowiednie uprawnienia do tego katalogu dla określonego konta usługi.
W swoim
CREATE DATABASE
oświadczeniu określasz lokalizację, ale czy ta lokalizacja była tą, która została określona w pierwotnej konfiguracji? Czy konto usługi uległo zmianie?Sposobem na przetestowanie tego jest uruchomienie zwykłego
Jeśli pojawi się ten sam błąd, być może zmieniło się konto usługi lub coś się zmieniło w zakresie uprawnień NTFS.
Ścieżka rozstrzygania (również oparta na ciągu komentarza) ma na celu potwierdzenie, że usługa z programem SQL Server ma uprawnienia R / W na określonej ścieżce. Aby to zrobić:
Start-> Uruchom->
services.msc
-> przewiń listę usług, aż znajdziesz SQL Server-> kliknij prawym przyciskiem myszy-> właściwości-> karta LogowanieTeraz idź i upewnij się, że konto ma odpowiednie uprawnienia do tego katalogu, aby zrobić to, co musi zrobić.
źródło
Wydaje się, że podana ścieżka zawiera niepoprawną liczbę spacji, więc nie pasuje do drzewa folderów.
Serwer Sql nie utworzy nieistniejącej ścieżki.
Edytuj :
Twój oryginalny post mówi:
i myślę, że to nie są istniejące ścieżki, a ponieważ są one okaleczone przez dwukropki, istotne jest, ile jest przestrzeni.
źródło
Microsoft SQL
iServer
, i to było dla mnie dziwne, ponieważ normalnie powinna to być tylko jedna spacja. Nie jest teraz widoczny, ponieważ Twój post był edytowany przez @marc_sPowyższy skrypt opublikowany w sekcji pytania jest poprawny. Możliwe, że ścieżka pliku wymieniona w FILENAME może być niepoprawna.
Skorzystaj ze skryptu podanego poniżej. Po prostu działa, a następnie upewnij się, że ścieżka do pliku używana w skrypcie.
źródło