it-swarm-eu.dev

CREATE FILE zaznamenal chybu 5 operačního systému (přístup byl odepřen.)

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?

13
thiagocfb

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.

19
mrdenny

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.

6
swasheck

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.

2
Luis Siquot

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
0
JP Chauhan