101 votes

Erreur mssql '5 (L'accès est refusé.)' lors de la restauration de la base de données

Je veux restaurer une base de données à partir d'un fichier (Tâches Restaurer Base de données; après avoir sélectionné à partir du périphérique et sélectionné le fichier) via SQL Server Management Studio.

Après cela, je reçois cette erreur:

Le système d'exploitation a renvoyé l'erreur '5 (L'accès est refusé.)' lors de la tentative 'RestoreContainer::ValidateTargetForCreation' sur 'E:\Program Files\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\DATA\XXXXXX.mdf'. Msg 3156, Niveau 16, État 8, Serveur XXXX, Ligne 2

Comment puis-je résoudre ce problème? Est-ce une erreur de sécurité?

3voto

Une bonne solution qui peut fonctionner est d'aller dans les fichiers > et vérifiez la réaffectation de tous les fichiers

Réaffectation des fichiers

2voto

Niels Points 145

J'ai rencontré le même problème, mais ma configuration est un peu différente.

  • Je lance ma base de données dans un conteneur docker Linux
  • outil de gestion sqlserver sous Windows.

Ce que j'ai fait était:

sudo docker exec -u root -it sqlserver /bin/bash

Cela entre dans le conteneur docker en tant qu'utilisateur root.

Ensuite:

chmod 777 /chemin/vers/fichier.bak

777 donne des autorisations de lecture, écriture et exécution au fichier pour tout groupe, utilisateur

1voto

Niroshanth Points 19

J'ai essayé le scénario ci-dessus et j'ai obtenu la même erreur 5 (accès refusé). J'ai approfondi mes recherches et j'ai découvert que le fichier .bak devrait avoir accès au compte de service SQL. Si vous n'êtes pas sûr, tapez services.msc dans Démarrer -> Exécuter, puis vérifiez le compte de connexion du service SQL.

Ensuite, allez dans le fichier, faites un clic droit et sélectionnez l'onglet Sécurité dans les Propriétés, puis modifiez pour ajouter le nouvel utilisateur.

Enfin, donnez-lui les autorisations complètes afin de lui donner un accès total.

Ensuite, depuis SSMS, essayez de restaurer la sauvegarde.

1voto

Raja Sekhar Points 89

J'obtenais la même erreur en essayant de restaurer la sauvegarde de la base de données SQL 2008 R2 dans la base de données SQL 2012. Je suppose que l'erreur est due à des autorisations insuffisantes pour placer les fichiers .mdf et .ldf dans le lecteur C. J'ai essayé une chose simple et j'ai réussi à le restaurer avec succès.

Essayez ceci :

Dans la fenêtre de l'assistant Restaurer la base de données, allez dans l'onglet Fichiers, changez la destination de restauration de C: vers un autre lecteur. Puis procédez avec le processus de restauration habituel. Cela se restaure certainement avec succès !

J'espère que cela vous aide aussi. Cheers :)

1voto

J'ai eu exactement le même problème mais ma solution était différente - ma société chiffre tous les fichiers sur mes machines. Après avoir déchiffré le fichier, MSSQL n'a eu aucun problème pour y accéder et créer la base de données. Il suffit de faire un clic droit sur le fichier .bak -> Propriétés -> Avancé... -> Chiffrer le contenu pour sécuriser les données. Déchiffrer

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