Meilleur auteur de réponses
Impossible d'attacher une base de données

Question
-
Bonjour à tous,
Je n'arrive pas à attacher ma base de données qui se trouve dans le repertoire App_data de mon application "C:\Users...\Visual Studio 2012\WebSites\AspPC\App_Data\". Elle est invisible par SQL SERVER MANAGEMENT STUDIO, et en procédures stockées EXEC sp_attach_db @dbname = N'AspPC',
@filename1 =
N'C:\Users\...\Visual Studio 2012\WebSites\AspPC\App_Data\AspPC.mdf',
@filename2 =
N'C:\Users\...\Visual Studio 2012\WebSites\AspPC\App_Data\AspPC.ldf';
et affiche se message.
:"Msg*5133, Niveau*16, État*1, Ligne*1
La recherche du fichier "C:\Users...\Visual Studio 2012\WebSites\AspPC\App_Data\AspPC.mdf" dans les répertoires s'est terminée par l'erreur système 5(Accès refusé.).
"
Réponses
-
Bonjour,
Le problème est enfin résolu. sur vos indications et un peu de recherche sur internet. J'ai modifié les droits du dernier groupe d’utilisateurs dans la TabPage Sécurité (voir photo jointe) parce que "chaque fois que décoche la case lecture seule (en bleue) dans les propriétés d'un dossier, que je fais appliquer , je valide, juste après il est redevient bleu. Je crois que le problème peut venir de là:" , lui ajoutant les droits de Contrôle totale, Modification et Lecture. Et j'ai attaché calmement ma BD. Grand Merci à tous, notamment à Papy Normand.
- Proposé comme réponse Papy Normand jeudi 19 septembre 2013 06:34
- Marqué comme réponse Dan BajenaruMicrosoft employee, Moderator jeudi 19 septembre 2013 09:42
Toutes les réponses
-
Bonjour
Le plus probable il y a un problème avec les droits ou le fichier est déjà attachée.
Pouvez-vous vérifier avec quel utilisateur est démarré le service SQL ?
Dans l’envite de commande administrateur tapez « services.msc ».
Dans la fenêtre qui s’ouvre essayez de trouver le service SQL Sever et avec clic droite/Propriétés ouvrez l’onglet Log On. D’ici vous pouvez trouver l’utilisateur dont vous devez vous assurer qu’il a des droits (lire-écrire) sur le chemin et fichier que vous voulez attacher.
Justement pour être sûr, le chemin doit se trouver sur le même ordinateur que le Serveur SQL.
Cordialement,
Aurel BERA, MSFT
MSDN Community Support. LE CONTENU EST FOURNI "TEL QUEL" SANS GARANTIE D'AUCUNE SORTE, EXPLICITE OU IMPLICITE.
S'il vous plaît n'oubliez pas de "Marquer comme réponse" les réponses qui ont résolu votre problème. C'est une voie commune pour reconnaître ceux qui vous ont aidé, et rend plus facile pour les autres visiteurs de trouver plus tard la résolution.- Modifié Aurel BeraModerator vendredi 13 septembre 2013 10:14 correction
-
Excusez moi, d'abord merci pour l'intervention. Mais je ne sais pas ce que vous appeler "envie de commande administrateur ", et comment y accéder. La base n'est pas encore attachée. Sûrement, un problème d'accès. L'utilisateur est l'administrateur system "sa", dans la propriété mappage de la connexion, il possède le droit "dbowner". Bien que j'ai changé de chemin d'accès à la base de données (pour qu'il soit direct), lerreur est toujours la même.
-
Bonjour ,
S'il vous plait , pourriez-vous expliquer d'où viennent ces 2 fichiers data ( .mdf ) et log ( .ldf ) ?
Je serai aussi très curieux de savoir comment cette base a été créée ( par script , par SQL Server Management Studio , par Visual Studio , dans ce dernier cas , quelle édition Express,Pro quelle version 2005,2008,2010,2012 ) ?
Autre chose , comme j'ai vu que dans vôtre chemin d'accès , il y a les mots Users, WebSites , ASPPC et App_Data. Généralement , ces mots signifient que c'est une base de données créée par VS 2012 pour ASP.Net. De plus , les fichiers créés sont en general des fichiers dans des répertoires appartenant à 1 utilisateur particulier qui est le seul à avoir accès , les autres utilisateurs n'ayant aucun accès, voire ne les voient même pas.
Pourriez-vous nous dire avec quelle version (2000,2005,2008,2008 R2,2012 bien que 2000 et 2005 soient 2 versions soit non ou même pas du tout supportée par VS 2012 ) de SQL Server a été créé vôtre base de données ?
Si ces fichiers ont été copiés sur un CD/DVD , il est possible qu'ils soient en lecture seule ( Read-Only ) et j'ai déjà vu des messages similaires lorsque l'on utilise ATTACH pour attacher des fichiers de façon à incorporer une nouvelle base de données à une instance SQL Server.
Si vous avez la chaîne de connexion utilisée par vôtre application pour se connecter à vôtre base , pourriez-vous la fournir ? ( s'il y a des données personnelles , comme des Login SQL Server , mot de passé , remplacez les par des astéristiques ).
Nous attendons vôtre retour d'information pour pouvoir essayer de vous aider plus zfficacement.
Bonne journée.
Mark Post as helpful if it provides any help.Otherwise,leave it as it is.
-
Bonjour,
Ces 2 fichiers sont les résultantes de la création de la base de données, et ont été crée par SQL SERVER Management Studio version 2012. il convient de noter que j'ai les instances sql server 2012 et 2008 et comme on peut s'attendre sql server express y est ajouté.
J'ai même reproduis la BD, l'ai renommée, et changé le chemin d'accès en un fichier plus accessible, parce que le 1er chemin ne l'était pas. Le problème demeure. je crois que ce doit un problème de droit sur le fichier. Lorsque j'essaie de l’exécuter en T-SQL avec:
EXEC sp_attach_db @dbname = N'MaBase', @filename1 = N'D:\WebSites\MonDossier\MaBase.mdf', @filename2 = N'D:\WebSites\MonDossier\App_Data\MaBase.ldf';
j'obtient ce message :
Msg 5120, Niveau 16, État 101, Ligne 1 Impossible d'ouvrir le fichier physique "D:\WebSites\MonDossier\MaBase.mdf". Erreur du système d'exploitation 2 : "2(Le fichier spécifié est introuvable.)".
J'utilise le compte admin "sa" pour sql server avec authentification sql server, la case dbowner du mappage utilisateur de la propriété de connexion "sa" est cochée, également le compte administrateur sur windows 7.
J'ai pu détacher la base de données mais impossible de l'attacher encore.
-
Bonjour
Ici vous avez les détails sur l'envite de commande en tant qu'Administrateur :
Le service windows du serverur SQL est démarrée avec des droits d'un utilisateur (et pour le récupérer veuillez regarder mon première message) et c’est cet utilisateur qui doit avoir des droits dans sur les fichiers que vous voulez attacher. D’habitude c’est un compte système – Ntework service ou System Service.
Cordialement,
Aurel BERA, MSFT
MSDN Community Support. LE CONTENU EST FOURNI "TEL QUEL" SANS GARANTIE D'AUCUNE SORTE, EXPLICITE OU IMPLICITE.
S'il vous plaît n'oubliez pas de "Marquer comme réponse" les réponses qui ont résolu votre problème. C'est une voie commune pour reconnaître ceux qui vous ont aidé, et rend plus facile pour les autres visiteurs de trouver plus tard la résolution.- Modifié Aurel BeraModerator vendredi 13 septembre 2013 10:14
-
Bonjour
Le compte de service de votre instance ne peut pas accéder au répertoire app_data de votre profil.
Créez simplement un répertoire data sur c:\ et recopiez vos fichiers mdf et ndf à l'intérieur et tout devrait fonctionner.
Vous pouvez également utiliser le répertoire Data présente dans le chemin SQL Server de Program Files.Cdlt
Christophe
Christophe LAPORTE - Independent Consultant & Trainer - SQL Server MVP-MCM
-
Bonjour Alexandre ,
Pourriez-vous nous expliquer comment vous avez détaché vôtre base de données ? Quel utilisateur ou login SQL Server avez-vous utilsé pour créer et détacher votre base de données ? Si c'est le même, utilisez cet utilisateur ou login pour tenter le ATTACH.
Il existe une possibilité qui pourrait marcher. Vous créez un login SQL Server au niveau de l'instance SQL Server et vous l'associez à l'utilisateur auquel appartient votre repertoire "D:\WebSites\MonDossier". Ensuite , il faudra donner à cet utilisateur tous les droits nécessaires pour faire des Attach/Detach , au minimum SysAdmin. Vous tentez d'attacher vôtre base de données à votre instance SQL Server.J'ai déjà utilisé cette méthode pour pouvoir accéder à une base de données d'un poste de travail à partir d'un autre poste de travail, les 2 postes appartenant à un workgroup ( et non un domaine Windows ). C'est long, pénible et demande beaucoup de soin et de préparation.
Avant de détacher une base de données , je fais toujours une sauvegarde complete par l'intermédiaire de SSMS ( SQL Server Management Studio ) en définissant une longue période de rétention ( au moins 6 mois ) . En cas de problème soit au moment du DETACH ou même disque, je suis sûr de pouvoir remettre la base de données en place par un simple RESTORE ( on peut changer le répertoire de restauration avec RESTORE ).
2 classiques erreurs :
- déplacer les fichiers de la base par l'intermédiaire de l'explorateur de fichiers. Les informations concernant les bases de données sont stockées dans la base système master et vous aurez de gros problèmes lors de l'utilisation de la command ATTACH.
- tentez de supprimer ces fichiers .mdf et .ldf. A nouveau , bonjour la base master.
Un petit reproche : SA est le login le plus puissant qui existe dans SQL Server. Son utilisation est hautement déconseillée et même dangereuse.
Dernière question : lorsque vous avez créé vôtre base de données avec SSMS , vous avez forcément utilize un utilisateur ou un login qui a accès à vôtre repertoire. A moins que vous ayez déplacé vos fichiers .mdf et .ldf du répertoire de 1ère création vers le repertoire que vous nous avez donné dans votre 1er fil. La réponse à ces questions permettrait surement nous aider à vous proposer une solution simple , rapide et efficace.
Bonne journée
Mark Post as helpful if it provides any help.Otherwise,leave it as it is.
-
Ca a une belle tête de LocalDB ...
Je en me fais pas trop de soucis pour le AttachDB. Une recopie dans un répertoire non lié à un profil et ça devrait rouler.
Christophe
Christophe LAPORTE - Independent Consultant & Trainer - SQL Server MVP-MCM
- Proposé comme réponse Papy Normand mercredi 11 septembre 2013 19:29
-
Bonjour Christophe ,
Je suppose que vous appuyez sur les 2 liens :
http://blogs.msdn.com/b/sqlexpress/archive/2011/10/28/localdb-where-is-my-database.aspx
http://blogs.msdn.com/b/sqlexpress/archive/2011/10/27/net-framework-4-now-supports-localdb.aspx
Je suggérerais de lire attentivement
http://blogs.msdn.com/b/sqlexpress/archive/2012/05/30/10184083.aspx
et notamment les commentaires postés par Ward Beattie vers la fin Septembre 2012.
Bonne journée
Mark Post as helpful if it provides any help.Otherwise,leave it as it is.
-
-
Bonjour Christophe ,
Cela correspond à une des réponses d'un MSFT dans l'un des articles provenant du SQL Server Express Weblog.
Je n'ai encore jamais testé LocalDB bien que je sache qu'il n'y a pas photo entre LocalDb et les User Instances ( instances nommées en français ). J'ai tant de mauvais souvenirs avec les instances nommées autant dans mes propres tests que sur les forums que je ne veux plus entendre parler des instances nommées et je crains for que LocalDb a subi le même sort. Il faudra que je teste LocalDB surtout que j'ai des collègues qui l'ont utilisé et qui l'apprécient. C'est maintenant dans mes prévisions de tests ( quand j'aurai fini de déboguer mon programme de lecture des logs d'erreurs en utilisant ReadErrorLog )
Merci pour le renseignement et bonne journée à tous.
Mark Post as helpful if it provides any help.Otherwise,leave it as it is.
-
Bonsoir à tous,
D'abord je tiens à remercier tout un chacun pour l'effort personnel fourni pour me tirer d'affaire. J'ai aussi fais des recherches sur internet sur le sujet.
J'utilise pour ma connexion le login "sa" (super Admin)' sur l'instance MSSQLSERVER. Le problème demeure depuis maintenant 3 jours.
Mais je crois que l'erreur vient du système d'exploitation qui n'est autre que WINDOWS 7 Ultimate, puisque le message reste presque inchangé à savoir "Erreur du système d'exploitation 5*: "5(Accès refusé.)":
Msg*5120, Niveau*16, État*101, Ligne*1
Impossible d'ouvrir le fichier physique "D:\WebSites\MonDossier\App_Data\MaBase.mdf". Erreur du système d'exploitation 5*: "5(Accès refusé.)
Donc j'ai activé le compte Administrateur, renommer la Base de Données, et changer le chemin pour qu'il soit direct, mais l'erreur demeure au niveau du système d'exploitation: "Erreur du système d'exploitation 5*: "5(Accès refusé.)" L'erreur est passée du niveau 2 à 5.
Donc comment corriger cette erreur d'accès au niveau du système d'exploitation est la question?
-
Bonjour Alexandre,
S'il vous plait , pourriez-vous nous indiquer quels droits d'accès ont les utilisateurs sur votre fichier ?
Pour cela ,
- double-clic sur Ordinateur
- rechercher votre fichier dans son répertoire
- clic droit sur votre fichier et sélectionner Propriétés
- regarder si le fichier est en lecture seule ( décocher si en lecture seule )
- sélectionnez la TabPage ( je ne connais pas la traduction française ) Sécurité
- avec l'outil de capture , fournissez nous une copie d'écran
- il faut que vous ayez pour les 2 fichiers au moins les droits Lecture , Modification pour votre utilisateur
Ce genre de problème explique pourquoi je suis farouchement contre le fait d'utiliser Visual Studio pour créer une base de données : les 3/4 du temps , la base est créée dans les sous-repertoires Users avec des blocages d'accés.
Quelques règles d'or :
- toujours utiliser SQL Server Management Studio ( SSMS ) pour créer,modifier, supprimer une base de données
- ne jamais utiliser la sauvegarde Windows pour une base de données
- toujours utiliser des outils liés à SQL Server ( SSMS , commandes Backup/Restore T-SQL ou des outils comme ceux de Red Gate , Idera et autres sociétés sérieuses ) pour effectuer des sauvegardes/restaurations de bases de données.
- pour ce genre d'opérations , toujours utiliser des utilisateurs/logins ayant les droits suffisants. SA et SysAdmin sont inutiles. Pour plus de précisions , voir les liens :
http://msdn.microsoft.com/fr-fr/library/ms186865.aspx
http://msdn.microsoft.com/fr-fr/library/ms190372.aspx
Dans la partie Sécurité ( vers la fin des 2 articles ) , vous trouverez des explications concernant votre problème ainsi que sur les permissions minimum nécessaires pour réaliser de bonnes sauvegardes/restaurations.
Attention, ces articles en français ont été traduits automatiquement et apparaissent normalement en anglais. Vous ne pourrez avoir qu'une traduction automatique qui est bonne mais ne vaut pas une traduction humaine.
J'accepterais une utilisation de Visual Studio pour créer une base de données qu'à condition que la base soit créée dans des répertoires accessibles à d'autres utilisateurs que le créateur ( cette remarque s'applique aussi à SSMS si on ne fait pas attention aux sécurités d'accès aux répertoires dans lesquels les bases de données sont crées, sauvegardées ou restaurées ).
Je suis désolé pour vous mais ces problèmes que vous avez sont classiques quand on oublie d'inculquer aux développeurs/utilisateurs un minimum de connaissances concernant la sécurité d'accès à une instance SQL Server. J'ai rencontré très souvent ce genre de problèmes dans les forums américains ( Getting Started with SQL Server, SQL Server Express , Data Access ) que je fréquente tous les jours.
Si vous avez besoin d'autres explications ou aide , il ne faut pas hésiter à poster à nouveau.
Bonne journée.
Mark Post as helpful if it provides any help.Otherwise,leave it as it is.
-
-
Bonsoir,
Encore certaines choses des plus bizarres est qu'à chaque fois que je décoche l'option lecture seule, et que je valide, je la retrouve cochée. De même lorsque je sélectionne le groupe d'utilisateurs Administrateurs après avoir cliqué sur l'étiquette Sécurité.
En somme, il est impossible de mettre le dossier de mon projet en Lecture/Écriture avec un compte Administrateur. Voici la 2è image :
-
Bonjour Alexandre ,
Avez-vous cliqué sur le bouton Appliquer ? La 1ère fois , j'avais oublé , ce qui a fait que ma modification n'a pas été prise en compte.
Dans la TabPage Général , avez-vous vérifié que les 2 fichiers ( .mdf et .ldf ) ne soient pas en lecture seule ( si en lecture seule , décocher la case correspondante )
Cocher Contrôle total pour ces 2 fichiers pour un utilisateur Windows administrateur que je vais appeler xxx ( pour simplifier ). Appliquer + OK
Créer l'utilisateur xxx pour l'instance SQL Server. Donner à xxx le droit de se connecter à l'instance et à la base Master .Il faudra accorder au minimum à xxx les droits dbcreator , bulkadmin, public , serveradmin. Cliquer sur OK pour valider.
Réessayer votre ATTACH. En cas d'erreur , il devrait y avoir un message dans le fichier courant des erreurs ( Errorlog pour l'instance ). Ce message pourrait nous aider à trouver la solution à votre problème.
J'ai essayé de reproduire votre problème sur mon PC mais je n'ai pas réussi.
Bonne journée
Mark Post as helpful if it provides any help.Otherwise,leave it as it is.
-
Bonsoir,
J’essaie de m’exécuter mais de 2 fichiers (*.mdf) et (*.ldf) qui ne sont pas en lecture seule demeure l'exclusivité du groupe d'utilisateurs authentifiés parlant de droits sur les fichiers. Voici la capture en fichier joint.
- Modifié Alexandre le_Grand vendredi 13 septembre 2013 19:12
-
-
Bonjour,
Le problème est enfin résolu. sur vos indications et un peu de recherche sur internet. J'ai modifié les droits du dernier groupe d’utilisateurs dans la TabPage Sécurité (voir photo jointe) parce que "chaque fois que décoche la case lecture seule (en bleue) dans les propriétés d'un dossier, que je fais appliquer , je valide, juste après il est redevient bleu. Je crois que le problème peut venir de là:" , lui ajoutant les droits de Contrôle totale, Modification et Lecture. Et j'ai attaché calmement ma BD. Grand Merci à tous, notamment à Papy Normand.
- Proposé comme réponse Papy Normand jeudi 19 septembre 2013 06:34
- Marqué comme réponse Dan BajenaruMicrosoft employee, Moderator jeudi 19 septembre 2013 09:42