228 votes

Erreur de restauration du serveur SQL - L'accès est refusé

J'ai créé une base de données sur ma machine locale, puis j'ai fait une sauvegarde appelée tables.bak de la table DataLabTables .

J'ai déplacé cette sauvegarde vers une machine distante sans cette table et j'ai essayé de faire une restauration mais j'ai obtenu l'erreur suivante :

System.Data.SqlClient.SqlError : Le système d'exploitation a renvoyé l'erreur l'erreur '5(Access is denied.)' lors de la tentative de RestoreContainer::ValidateTargetForCreation' sur 'c : \Program Fichiers \Microsoft SQL Server \MSSQL.1\MSSQL\DataLabTables.mdf '.

Comment puis-je réparer mes droits, si tel est le problème ?

6voto

martijn Points 146

J'ai eu un problème similaire. J'ai essayé de restaurer un fichier .bak de 2005, et j'ai reçu exactement la même erreur. J'ai également sélectionné l'option d'écrasement, sans succès.

ma solution a été d'accorder à l'utilisateur SQL l'accès au répertoire en question, en allant dans le dossier et en modifiant les droits d'accès via l'écran de propriété.

2voto

abraham tio Points 21

J'ai aussi perdu quelques heures à cause de ce problème, mais j'ai réussi à m'en sortir :

Dans mon cas, "accès refusé" signifiait vraiment "accès refusé". Le compte utilisateur de mssqlstudio sur mon périphérique Windows n'avait PAS le contrôle total du dossier spécifié dans le message d'erreur. Je lui ai donné le contrôle total. L'accès n'était plus refusé et la restauration a réussi.

pourquoi le dossier était-il fermé pour le studio ? qui sait ? j'ai assez de questions à traiter comme ça sans essayer de répondre à d'autres.

1voto

Rob Smith Points 11

J'ai eu ce problème, je me suis connecté en tant qu'administrateur et cela a réglé le problème.

0voto

demongolem Points 3521

Un autre scénario pourrait être l'existence de plusieurs chemins de base de données. Tout d'abord, notez le chemin où les nouvelles bases de données sont actuellement stockées. Ainsi, si vous créez une nouvelle base de données vide, puis faites Tasks/Restore Vérifiez que le chemin que la restauration tente d'utiliser est le même répertoire que celui dans lequel la base de données vide a été créée. Même si le chemin de restauration est légal, vous obtiendrez toujours l'erreur d'accès refusé si ce n'est pas le chemin actuel avec lequel vous travaillez. Très facile à repérer lorsque le chemin n'est pas légal, beaucoup plus difficile à repérer lorsque le chemin est légal, mais pas le chemin actuel.

0voto

bubi Points 29

Désolé car je ne peux pas commenter...

J'ai eu le même problème. Dans mon cas, le problème était lié à la tentative de restauration dans un ancien dossier sql server (qui existait sur le serveur). Ceci est dû à une ancienne sauvegarde de serveur sql (c'est-à-dire une sauvegarde de SQL Server 2012) restaurée dans un nouveau serveur sql (SQL Server 2014). Le vrai problème n'est pas très différent de la réponse de @marc_s. Quoi qu'il en soit, j'ai changé uniquement le dossier cible pour le nouveau dossier SQL Server DATA.

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