Meilleur auteur de réponses
enlever lecture seul d'une base de donnee

Question
-
Bonjour
J'ai une base de données SQL Server.
J'ai écrit une procédure stockée pour attacher ma base de données, mais elle est attachée en mode lecture seule comment peut retirer en lecture seule.j'ai essayé EXEC sp_dboption 'Gestion_Parc', 'read only', 'FALSE' mais elle produit des erreurs
Msg 5120, Niveau 16, État 101, Ligne 1
Impossible d'ouvrir le fichier physique "C:\Gestion_Parc.mdf". 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 "C:\Gestion_Parc_log.ldf". Erreur du système d'exploitation 5 : "5(Accès refusé.)".
Msg 945, Niveau 14, État 2, Ligne 1
La base de données 'Gestion_Parc' ne peut pas être ouverte, car des fichiers sont inaccessibles, ou la mémoire ou l'espace disque sont insuffisants. Pour plus d'informations, consultez le journal des erreurs de SQL Server.
Msg 5120, Niveau 16, État 101, Ligne 1
Impossible d'ouvrir le fichier physique "C:\Gestion_Parc.mdf". 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 "C:\Gestion_Parc_log.ldf". Erreur du système d'exploitation 5 : "5(Accès refusé.)".
Msg 5069, Niveau 16, État 1, Ligne 1
Échec de l'instruction ALTER DATABASE.
Échec de la commande sp_dboption.
Merci pour l'aide ^ ^
Réponses
-
Je réécris ce que j'ai mis plus haut...
D'après la copie des messages d'erreur mis ci-dessus, les fichiers MDF et LDF ont été mis sur la racine du disque C ("C:\Gestion_Parc.mdf")
Or il se trouve que depuis Vista et Windows Server 2008 cet espace a des droits très particuliers, seul les admin ont le droit d'y copier des fichiers. Ce qui est vraisemblablement le cas ici.
Mais SQL Server, en fonction de la manière dont il a été installé, a très probablement un compte de service qui a des droits d'utilisateur simple (NetworkService n'est pas admin), or ce type de compte n'a pas accès en écriture sur la racine du disque système, donc les fichiers de base de données ne peuvent pas être attachés.Il ne faut pas chercher plus loin, il faut créer un nouveau répertoire, y copier les fichier, et les attacher depuis là.
Bonne journée
Christian Robert - MVP SQL Server - Microsoft Certified Master - SQL Server 2008
Blog : http://blogs.codes-sources.com/christian/
Groupe des Utilisateurs Francophone de SQL Server : http://www.guss.fr- Proposé comme réponse Papy Normand mardi 30 août 2011 19:21
- Marqué comme réponse Ciprian Duduiala vendredi 2 septembre 2011 06:44
-
Bonjour Christian,
ce fil ( en anglais ) parle d'un sujet similaire et donne les mêmes conseils que vous ( notamment sur les droits d'accès sur les fichiers .mdf/.ldf ). Par contre, mettre les fichiers SQL Server directement dans la racine du disque système est une erreur.
Il faudrait détacher la base de données,supprimer les fichiers .mdf/.ldf et recopier ces mêmes fichiers dans un nouveau répertoire classique .Vérifier que les fichiers ne sont pas en read-only avant d'attacher la base à l'instance SQL Server.
Par contre, le créateur de ce fil pourrait dire si ces fichiers ne viendraient pas d'un snapshot de base ( donc non modifiable )
Bonne journée
Mark Post as helpful if it provides any help.Otherwise,leave it as it is.- Marqué comme réponse Ciprian Duduiala vendredi 2 septembre 2011 06:44
Toutes les réponses
-
Bonjour,
Je soupconne plutôt que son emplacement n'est pas correct. Un utilisateur non admin (ce qui est sans doute le cas du compte service SQL Server) ne peut pas écrire sur c:\.
Voir ce que cela donne en mettant la base ailleurs...
Please always mark whatever response solved your issue so that the thread is properly marked as "Answered". -
-
Bonjour
Le problème viendrait plutôt du fait que vous mettez les fichier à la racine du disque C: (au vu des erreurs) et que cet emplacement sur tous les systèmes depuis Vista et Windows Server 2008 sont restreint au niveau des droits.
Donc effectivement vous n'avez pas de droits suffisant pour attacher les fichiers. Il suffirait de créer un sous répertoire et de les copier dedans, attention tout de même celà peut aussi provenir du compte de service avec lequel tourne SQL Server (mais j'en doute un peu dans ce cas).
Bonne journée
Christian Robert - MVP SQL Server
Blog : http://blogs.codes-sources.com/christian/
Groupe des Utilisateurs Francophone de SQL Server : http://www.guss.fr- Proposé comme réponse Ciprian Duduiala lundi 29 août 2011 07:40
-
Le "Accès refusé" me fait tout de même furieusement penser à un problème de droit. Les permissions ont-elles étés vérifiées, y a t'il un attribut en lecture seule sur le fichier mdf ? Cela donne quoi si on crée une nouvelle base en la laissant à l'emplacement par défaut ?
Please always mark whatever response solved your issue so that the thread is properly marked as "Answered". -
Bonjour,
Je pense que ce problème est lié à une copie d'une base de données par l'intermédiaire d'un CD/DVD. Dans ce cas , les fichiers .mdf et .ldf sont copiés en read-only sur le disque dur ( normal, puisqu'ils sont en read-only sur le CD/DVD ).
Il suffit de détacher la base de données et modifier la propriété read-only avec l'explorateur sur les 2 fichiers .mdf et .ldf.
on se positionne sur chacun des fichiers avec le poste de travail.Clic droit sur le nom du fichier.Sélectionner Propriétés et décocher la case Lecture seule ( en bas sur la ligne Attributs ).
Reste à savoir si ces 2 fichiers .mdf et .ldf ne correspondraient pas à des snapshots ( qui sont en read-only par définition )
Bonne journée
Mark Post as helpful if it provides any help.Otherwise,leave it as it is. -
Je réécris ce que j'ai mis plus haut...
D'après la copie des messages d'erreur mis ci-dessus, les fichiers MDF et LDF ont été mis sur la racine du disque C ("C:\Gestion_Parc.mdf")
Or il se trouve que depuis Vista et Windows Server 2008 cet espace a des droits très particuliers, seul les admin ont le droit d'y copier des fichiers. Ce qui est vraisemblablement le cas ici.
Mais SQL Server, en fonction de la manière dont il a été installé, a très probablement un compte de service qui a des droits d'utilisateur simple (NetworkService n'est pas admin), or ce type de compte n'a pas accès en écriture sur la racine du disque système, donc les fichiers de base de données ne peuvent pas être attachés.Il ne faut pas chercher plus loin, il faut créer un nouveau répertoire, y copier les fichier, et les attacher depuis là.
Bonne journée
Christian Robert - MVP SQL Server - Microsoft Certified Master - SQL Server 2008
Blog : http://blogs.codes-sources.com/christian/
Groupe des Utilisateurs Francophone de SQL Server : http://www.guss.fr- Proposé comme réponse Papy Normand mardi 30 août 2011 19:21
- Marqué comme réponse Ciprian Duduiala vendredi 2 septembre 2011 06:44
-
Bonjour Christian,
ce fil ( en anglais ) parle d'un sujet similaire et donne les mêmes conseils que vous ( notamment sur les droits d'accès sur les fichiers .mdf/.ldf ). Par contre, mettre les fichiers SQL Server directement dans la racine du disque système est une erreur.
Il faudrait détacher la base de données,supprimer les fichiers .mdf/.ldf et recopier ces mêmes fichiers dans un nouveau répertoire classique .Vérifier que les fichiers ne sont pas en read-only avant d'attacher la base à l'instance SQL Server.
Par contre, le créateur de ce fil pourrait dire si ces fichiers ne viendraient pas d'un snapshot de base ( donc non modifiable )
Bonne journée
Mark Post as helpful if it provides any help.Otherwise,leave it as it is.- Marqué comme réponse Ciprian Duduiala vendredi 2 septembre 2011 06:44