J'essaie d'exécuter le script suivant dans 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%)
Mais je reçois l'erreur:
Msg 5123, niveau 16, état 1, ligne 2
CREATE FILE a rencontré l'erreur 5 du système d'exploitation (l'accès est refusé.)
Lors de la tentative d'ouverture ou de création du fichier physique
'C: \ Program Files \ Microsoft SQL Server \ MSSQL10.SQLEXPRESS \ MSSQL \ DATA \ test1.mdf '.Msg 1802, niveau 16, état 4, ligne 2
CREATE DATABASE a échoué. Certains noms de fichiers répertoriés n'ont pas pu être créés. Vérifiez les erreurs associées.
Vous avez déjà toutes les autorisations de rôle pour mon utilisateur, des idées sur ce qui ne va pas?
sql-server
sql-server-2012
thiagocfb
la source
la source
CREATE DATABASE [test1]; GO
?Réponses:
Vous obtenez une erreur d'autorisation. Le compte qui exécute SQL Server n'a pas les droits nécessaires sur le dossier qui contiendra les fichiers de base de données.
Vous devez donner au compte qui exécute SQL Server (pas à votre compte) le contrôle total de C: \ Program Files \ Microsoft SQL Server \ MSSQL10.SQLEXPRESS \ MSSQL \ DATA.
la source
Network Service
compte. Les droits appropriés devront donc être modifiés sur les répertoires respectifs de ce compte si c'est le cas sur votre PC également.Sur la base de notre fil de commentaires, il semble que vous vous soyez peut-être un peu éloigné lors de l'installation. Le programme d'installation vous permet de choisir votre répertoire de données par défaut et (je suppose ) définit les autorisations appropriées sur ce répertoire pour le compte de service que vous avez spécifié.
Dans votre
CREATE DATABASE
déclaration, vous spécifiez un emplacement, mais cet emplacement était-il celui spécifié dans la configuration d'origine? Le compte de service a-t-il changé?Un moyen de tester cela consiste à simplement exécuter un générique
Si vous obtenez la même erreur, le compte de service a peut-être changé ou quelque chose concernant les autorisations NTFS a changé.
Un chemin de résolution (également basé sur la chaîne de commentaire) consiste à confirmer que le service qui exécute SQL Server dispose des autorisations R / W sur le chemin que vous spécifiez. Pour faire ça:
Démarrer-> Exécuter->
services.msc
-> faire défiler la liste des services jusqu'à ce que vous trouviez SQL Server-> clic droit-> propriétés-> onglet ConnexionAllez maintenant et assurez-vous que le compte dispose de l'autorisation appropriée sur ce répertoire pour faire ce qu'il doit faire.
la source
Il semble qu'il y ait un nombre incorrect d'espaces dans le chemin d'accès fourni, il ne correspond donc pas à l'arborescence des dossiers.
Le serveur SQL ne créera pas de chemin inexistant.
Modifier :
votre message d'origine dit:
et je suppose que ce ne sont pas des chemins existants, et comme ils sont entourés de deux points, il est pertinent de savoir combien d'espace il y a.
la source
Microsoft SQL
etServer
, et c'était étrange pour moi car normalement il ne devrait y avoir qu'un seul caractère d'espace. Il n'est plus visible maintenant car votre message a été édité par @marc_sLe script ci-dessus que vous publiez dans votre section de questions est correct. Il est possible que le chemin de fichier que vous mentionnez dans FILENAME soit incorrect.
Veuillez utiliser le script ci-dessous. Cela fonctionne simplement, puis assurez-vous que le chemin du fichier que vous utilisez dans votre script.
la source