web-dev-qa-db-fra.com

CREATE FILE a rencontré l'erreur 5 du système d'exploitation (impossible d'extraire le texte pour cette erreur. Raison: 15105)

J'ai un fichier de base de données .mdf de MS SQL EXPRESS dans le dossier:

C:\Program Files\Microsoft SQL Server\MSSQL10.SQLEXPRESS\MSSQL\DATA

J'aimerais l'attacher à MS 2008 R2 (MSSQL10_50.MSSQLSERVER) mais en utilisant Server Management Studio, le message d'erreur suivant s'affiche:

CREATE FILE encountered operating system error 5(failed to retrieve text for this error. Reason: 15105) while attempting to open or create the physical file

Avez-vous une idée de comment le résoudre?

65
GibboK

J'ai pu résoudre le problème lié à l'exécution de MS SQL Management Studio en tant qu'administrateur.

121
GibboK

C'est un problème d'autorisations Windows. Si vous vous êtes connecté à votre serveur à l'aide de l'authentification Windows, cet utilisateur Windows doit disposer d'autorisations sur le fichier. Si vous vous êtes connecté à votre serveur à l'aide de l'authentification SQL Server, le compte d'instance SQL Server (MSSQL $, par exemple MSSQL $ SQLEXPRESS) nécessite des autorisations sur le fichier. Les autres solutions suggérant de se connecter en tant qu'administrateur accomplissent essentiellement la même chose (avec un peu de sledgehammer :).

Si le fichier de base de données se trouve dans le dossier de données de votre serveur SQL Server, les droits d'utilisateur du compte SQL Server de ce dossier devraient alors être hérités, de sorte que l'authentification SQL Server aurait dû fonctionner. Je recommanderais de corriger les droits du compte de l'instance SQL Server pour ce dossier. Si le fichier de données se trouve ailleurs et que le compte SQL Server ne dispose pas d'autorisations, vous rencontrerez probablement d'autres problèmes ultérieurement. Encore une fois, la meilleure solution consiste à corriger les droits du compte SS. Sauf si vous allez toujours vous connecter en tant qu'administrateur ... 

45
user2029904

Clic droit sur File mdf and ldf properties -> security -> full permission

5

Donner des droits d'administrateur ou un contrôle total sur l'emplacement d'installation de ma base de données a résolu mon problème.

4
sidh4work

J'avais une erreur similaire.

CREATE FILE encountered operating system error **32**(failed to retrieve text for this error. Reason: 15105) while attempting to open or create the physical file

J'ai utilisé la commande suivante pour attacher la base de données:

EXEC sp_attach_single_file_db @dbname = 'SPDB',
@physname = 'D:\SPDB.mdf'
2
Brij

J'ai eu le même problème. Après plusieurs tentatives, j'ai réalisé que la connexion du serveur SQL avec l'authentification Windows résolvait le problème. 

2
Lamar

Comme d'autres suggérés en cours d'exécution en tant qu'administrateur aidera.

Toutefois, ceci uniquement si l'utilisateur Windows est en réalité un administrateur admis sur la machine sur laquelle le serveur SQL s'exécute.

Par exemple, lorsque vous utilisez SSMS à partir d'un ordinateur distant, il ne sera pas utile d'utiliser "exécuter en tant qu'administrateur" si l'utilisateur est uniquement un administrateur sur l'ordinateur exécutant SSMS mais pas sur l'ordinateur exécutant SQL Server.

1
yoel halb

1 .copie votre -. MDF, -. LDF fichiers à pate cet emplacement Pour le serveur 2008 C:\Program Files\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\DATA 2. Dans le serveur SQL 2008, utilisez ATTACH et sélectionnez le même emplacement pour l'ajout. 

1
pradeep

J'avais ce problème sous Windows 2003 avec SQL 2005. Je devais prendre en charge les fichiers en tant que compte utilisateur Windows et la base de données était attachée de cette façon.

Vous devez cliquer avec le bouton droit sur le fichier, sélectionner Propriétés, cliquer sur OK pour dépasser l'écran d'informations, cliquer sur le bouton Avancé, sélectionner votre compte dans la liste des comptes ou des groupes disponibles, appliquer cette modification et cliquer sur OK dans l'écran Propriétés. Une fois que vous avez terminé, vous pourrez gérer les autorisations de fichiers.

Je me suis connecté à SSMS avec l'authentification Windows et j'ai pu attacher la base de données sans erreur.

À votre santé!

1
IryDBA2791

J'ai juste décidé de créer le fichier dans D: au lieu de C: et tout a bien fonctionné. Windows 7 ... 10 ont de nombreux problèmes concernant le partage et l'autorisation des fichiers et des dossiers. 

0
Sohail

si vous avez des points de montage, ajoutez le compte de service SQL Server à la sécurité du volume en conséquence

0
meto

Démarrer-> Exécuter-> services.msc-> faites défiler la liste des services jusqu'à trouver SQL Server-> clic droit-> propriétés-> onglet Connexion:

Puis choisissez Local System Account et cochez la case Allow service to interact with desktop.

Redémarrez le service.

 Services

0
TiyebM

Ma solution était légèrement plus compliquée. Après avoir vérifié l'utilisateur sur lequel le service s'exécutait, exécuté MSSMS en tant qu'administrateur local et de domaine et vérifié les autorisations de dossier, j'obtenais toujours cette erreur. Ma solution? 

La propriété des dossiers était toujours maintenue par compte local. 

Propriétés> Sécurité> Avancé> Propriétaire> (les services SQL du domaine/utilisateur local/groupe s'exécutent en tant que)

Cela a résolu le problème pour moi.

0
xkalibur

Nous avons rencontré ce problème lorsque l’utilisateur Windows qui détache la base de données et l’utilisateur Windows qui attache la base de données sont différents. Lorsque l'utilisateur Windows détachant la base de données, a essayé de l'attacher, cela a fonctionné sans problèmes. 

0
Venkataraman R

Ce même problème se produit lorsque les propriétaires du fichier ont été supprimés. Lorsque cela se produit, si vous accédez aux propriétés du fichier, vous verrez un SID plutôt qu'un nom d'utilisateur. Prenez possession du fichier (en vous donnant le plein contrôle). Une fois que cela est fait, vous pouvez faire ce que vous devez faire avec le fichier.

J'ai eu ce travail en me connectant car l'administrateur ne faisait pas l'affaire.

0
PseudoToad

Voici ce qui s'est passé dans mon cas… .. On m'a demandé de joindre des fichiers pour une base de données. On m'a donné les noms de fichiers comme suit

  • devdb.mdf et devdb.ldf

J'ai commencé à joindre les fichiers et à obtenir que les fichiers soient utilisés par un autre processus.

J'ai lancé une requête sur la vue système, sélectionnez nom, nom_ physiques à partir de sys.master_files; et vu que les noms de fichiers exacts étaient déjà utilisés par une autre base de données, donc chaque fois que j'essayais de joindre les fichiers, l'erreur ne cessait de se produire, les fichiers étant utilisés par un autre processus (serveur SQL)

Ainsi, si vous recevez un tel message, interrogez également la vue système sys.master_files et déterminez quelle base de données utilise déjà les mêmes fichiers de noms . Vous trouverez ci-dessous ce qu'il faut faire.

merci.

0
sqladmin

Dans mon cas, le message d'erreur s'affiche lorsque j'essaie de créer une base de données sur un nouveau lecteur . Pour résoudre le problème, j'ai créé un nouveau dossier sur ce lecteur et défini les propriétés de l'utilisateur Sécurité à un contrôle total sur celui-ci (Cela peut suffire pour définir Modifier) ​​. Conclusion: RÉGLER la sécurité des propriétés du lecteur/dossier pour les utilisateurs sur "Modifier".

0
Menahem

L'ouverture de SSMS en tant qu'administrateur et l'exécution en tant qu'authentification SQL vs Auth Windows ne fonctionnaient pas.

Ce qui a bien fonctionné a été de changer mon nom de fichier au même emplacement que celui où se trouvent les fichiers LDF et MDF.

alter database MyDB
add file ( name = N'FileStreamName', 
filename = N'D:\SQL Databases\FileStreamSpace' ) 
to filegroup DocumentFiles;
0
Cameron Castillo

J'ai eu cette erreur lors de la restauration d'une base de données sauvegardée sur un autre serveur. Après une longue lutte c'est ce que j'ai fait

  1. Activation de l'initialisation instantanée du fichier,

  2. Autorisations accordées (contrôle total) sur le dossier du compte de service et de mon propre compte Windows,

  3. Redémarrage du service SQL . Base de données restaurée par la suite.

0
Lucian

Si vous travaillez déjà en tant qu'administrateur, assurez-vous que l'utilisateur que vous utilisez possède les rôles de serveur appropriés.

  1. Connectez-vous en tant que sa (si vous le pouvez)
  2. Développez le dossier de sécurité
  3. Développez le dossier de connexion
  4. Faites un clic droit sur l'utilisateur que vous souhaitez utiliser
  5. Sélectionnez Propriétés
  6. Sélectionnez les rôles de serveur
  7. Sélectionnez tous les rôles de serveur
  8. Cliquez sur OK
  9. Redémarrer SSMS
  10. Se connecter avec l'utilisateur modifié
0
jnoreiga

La clé est "erreur de système d'exploitation 5". Microsoft liste utilement les différents codes d'erreur et valeurs sur leur site

https://msdn.Microsoft.com/en-us/library/windows/desktop/ms681382(v=vs.85).aspx

ERROR_ACCESS_DENIED 5 (0x5) L'accès est refusé.

0
Cameron Kerr

copiez vos fichiers --.MDF, --.LDF dans cet emplacement pour le serveur 2008 C:\Program Files\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\DATA 2.

Dans SQL Server 2008, utilisez ATTACH et sélectionnez le même emplacement pour l'ajout.

0
Munish Gupta

Voici les étapes:

  1. Cliquez avec le bouton droit sur les fichiers .mdf et .ldf.
  2. Puis sélectionnez les propriétés.
  3. Sur la sécurité -> Avancé -> Permettez d'ajouter l'utilisateur qui
0
ehsan farahmand

Dans mon cas, Exécuter en tant qu'administrateur n'aide pas. J'ai résolu le problème en modifiant le compte intégré en système local dans Configuration Manager.

0
NewComer