V SQL Server Management Studio se pokouším spustit následující skript:
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 dostávám chybu:
Msg 5123, úroveň 16, stav 1, řádek 2
CREATE FILE zaznamenal chybu 5 operačního systému (přístup byl odepřen.)
při pokusu o otevření nebo vytvoření fyzického souboru
'C:\Program Files\Microsoft SQL Server\MSSQL10.SQLEXPRESS\MSSQL\DATA\test1.mdf'.Msg 1802, úroveň 16, stav 4, řádek 2
VYTVOŘENÍ DATABÁZY selhalo. Některé názvy souborů nelze vytvořit. Zkontrolujte související chyby.
Už máte všechna oprávnění pro role pro mého uživatele, nějaké nápady, co se děje?
Zobrazuje se chyba oprávnění. Účet, na kterém je spuštěn SQL Server, nemá potřebná práva ke složce, která bude obsahovat databázové soubory.
Musíte dát účtu, na kterém je spuštěn SQL Server (nikoli váš účet) úplnou kontrolu nad C:\Program Files\Microsoft SQL Server\MSSQL10.SQLEXPRESS\MSSQL\DATA.
Na základě našeho vlákna pro komentáře to vypadá, že jste se během instalace dostali trochu do strany. Instalační program vám umožní vybrat výchozí datový adresář a (Já bych předpokládat) nastaví příslušná oprávnění pro tento adresář pro účet služby, který jste zadali.
Ve vašem CREATE DATABASE
prohlašujete, že určujete místo, ale bylo to místo, které bylo určeno v původním nastavení? Změnil se servisní účet?
Způsob, jak to otestovat, je spustit běžný generik
CREATE DATABASE [test1];
GO
Pokud se zobrazí stejná chyba, možná se účet služby změnil nebo se něco o oprávnění NTFS změnilo.
Cesta k rozlišení (také založená na řetězci komentářů) má potvrdit, že služba, která je spuštěna SQL Server, má oprávnění R/W na zadané cestě. Udělat toto:
Start-> Spustit -> services.msc
-> procházejte seznam služeb, dokud nenajdete SQL Server-> klepněte pravým tlačítkem myši-> vlastnosti-> karta Přihlášení
Nyní jděte a ujistěte se, že účet má odpovídající oprávnění k tomuto adresáři, aby mohl dělat, co potřebuje.
Zdá se, že v dodané cestě je nesprávný počet mezer, takže neodpovídá stromu složek.
Sql server nevytvoří neexistující cestu.
pravit:
Váš původní příspěvek říká:
...\Microsoft SQL Server\...
...\Microsoft SQL Server\...
a myslím, že to nejsou existující cesty, a protože jsou roztříděny dvojtečkami, je důležité, kolik místa tam jsou.
Výše uvedený skript, který vložíte do své otázky, je správný. Je možné, že cesta k souboru, kterou uvedete v souboru FILENAME, může být nesprávná.
Použijte prosím skript uvedený níže. Jednoduše to funguje, pak se ujistěte, že cesta k souboru, kterou používáte ve skriptu.
Use Master go CREATE DATABASE test1 ON PRIMARY ( NAME = N'test1', FILENAME = N'D:\test1.mdf', SIZE = 70656KB , MAXSIZE = UNLIMITED, FILEGROWTH = 1014KB) LOG ON ( NAME = N'test1_log', FILENAME = N'D:\test1_log.ldf', SIZE = 164671KB , MAXSIZE = 1048GB , FILEGROWTH = 10%) GO