73 votes

CREATE FILE a rencontré l'erreur 5 du système d'exploitation (impossible de récupérer le texte de 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

Je voudrais le joindre à MS 2008 R2 (MSSQL10_50.MSSQLSERVER) mais en utilisant Server Management Studio je reçois l'erreur suivante :

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 la façon de le résoudre ?

2 votes

Est-il possible que le mdf soit déjà attaché à une instance de SQL Server, ou qu'il soit ouvert dans un projet Visual Studio ou quelque chose de ce genre ? Avez-vous essayé de faire une copie du fichier et de l'attacher ? D'où vient le fichier MDF ? Est-il possible qu'il n'ait pas été détaché proprement de sa source d'origine ?

3 votes

Le serveur SQL est-il exécuté en tant qu'administrateur ? Voir CREATE FILE a rencontré l'erreur 5 du système d'exploitation L'accès est refusé

1 votes

Merci pour vos commentaires, j'ai pu résoudre le problème en fonctionnant en tant qu'ADMINISTRATEUR, merci !

143voto

GibboK Points 9196

J'ai pu résoudre le problème en utilisant MS SQL Management Studio en tant qu'ADMINISTRATEUR.

3 votes

La réponse de stackoverflow.com/users/2029904/user2029904 est beaucoup moins agressif et résout le problème sous-jacent - un accès insuffisant du compte d'instance au fichier de la base de données.

0 votes

@GibboK que se passe-t-il si la base de données est créée avec EF:Code First ? J'ai changé mon modèle et quand j'essaie de lancer le programme, cette erreur apparaît. J'ai lancé VS en tant qu'administrateur mais rien ne change.

0 votes

La correction de "l'accès insuffisant du compte d'instance au fichier de base de données" n'a pas fonctionné pour moi, seule l'exécution en tant qu'administrateur a fonctionné. Pourquoi un programmeur de Microsoft ne corrige-t-il pas ce problème une fois pour toutes et ne nous épargne-t-il pas cette souffrance inutile ?

52voto

user2029904 Points 151

C'est un problème de permissions Windows. Si vous vous êtes connecté à votre serveur en utilisant l'authentification Windows, l'utilisateur Windows doit avoir les droits d'accès au fichier. Si vous vous êtes connecté à votre serveur à l'aide de l'authentification SQL Server, le compte de l'instance SQL Server (MSSQL$, par exemple MSSQL$SQLEXPRESS) doit avoir les droits d'accès au fichier. Les autres solutions qui suggèrent de se connecter en tant qu'administrateur accomplissent essentiellement la même chose (avec un peu plus de force :).

Si le fichier de la base de données se trouve dans le dossier de données de votre serveur SQL, il devrait avoir hérité des droits d'utilisateur pour le compte du serveur SQL de ce dossier et l'authentification du serveur SQL devrait avoir fonctionné. Je recommande de fixer les droits du compte de l'instance du serveur SQL pour ce dossier. Si le fichier de données se trouve ailleurs et que le compte SQL Server n'a pas de droits, vous rencontrerez probablement d'autres problèmes par la suite. Encore une fois, la meilleure solution est de fixer les droits du compte SS. À moins que vous ne vous connectiez toujours en tant qu'administrateur...

0 votes

C'était ma solution. Merci !

5 votes

Modifiez les propriétés de sécurité du dossier de données pour inclure le contrôle total pour l'utilisateur qui exécute SQL Management Studio.

0 votes

Le compte d'instance tente d'ouvrir les fichiers de données et les fichiers journaux avec une autorisation CED d'écriture. Ceci est disponible si le compte <Machine> \Users a une autorisation complète pour les fichiers. Lorsque la connexion de test réussit, ces autorisations sont remplacées par des valeurs spécifiques du serveur SQL, ce qui efface les paramètres temporaires.

4voto

Rahul Raina Points 31

J'ai eu des problèmes d'accès lors de l'attachement de la base de données. Mais le problème a été résolu lorsque j'ai exécuté SSMS en tant qu'administrateur. Cela m'a aidé. Merci beaucoup

3voto

Abu Lamar Points 38

J'ai eu le même problème. Après plusieurs essais, je me suis rendu compte que la connexion du serveur sql avec l'authentification Windows résolvait le problème.

0 votes

Cela a résolu le problème pour moi. L'exécution de SQL Server Management Studio en tant qu'administrateur n'a pas résolu le problème pour moi.

0 votes

Contrairement à moi, je me suis connecté en utilisant l'authentification du serveur SQL avec le compte "sa" et cela fonctionne.

2voto

Brij Points 1149

Je recevais 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'

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X