web-dev-qa-db-fra.com

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

Je souhaite restaurer une base de données à partir d'un fichier (Tâches-> Restaurer-> Base de données; après avoir sélectionné l'appareil et le fichier) via le studio de gestion du serveur SQL 

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

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

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

57
2xMax

Le compte sur lequel le serveur SQL s'exécute n'a pas accès à l'emplacement où se trouve le fichier de sauvegarde ou tente de restaurer la base de données. Vous pouvez utiliser SQL Server Configuration Manager pour trouver le compte utilisé pour exécuter l'instance de SQL Server, puis vous assurer que ce compte a le contrôle total sur le fichier .BAK et le dossier dans lequel le MDF sera restauré à.

enter image description here

75
SQLMenace

J'ai eu récemment ce problème. La solution pour moi consistait à aller à la page Fichiers de la boîte de dialogue Restaurer la base de données et à cocher "Déplacer tous les fichiers dans un dossier".Restore Database dialog

140
Jamie Humphries

Eh bien, dans mon cas, la solution était assez simple et directe. 

Je devais changer seulement la valeur de log On As valeur.

Étapes à suivre pour résoudre 

  1. Ouvrez Sql Server Configuration manager
  2. Droite click on SQL Server (MSSQLSERVER)
  3. Aller à Properties

 enter image description here

  1. remplacez la valeur log On As par LocalSystem

 enter image description here

Espérant que cela vous aidera aussi :)

9
Vikash Pandey

Je viens de rencontrer ce même problème mais j'avais une solution différente. Essentiellement, SQL Server et SQL Server Express étaient installés sur mon ordinateur. Cela ne fonctionnait pas lorsque je tentais de restaurer SQL Express, mais fonctionnait correctement lorsque je le restaurais sur SQL Server.

4
Ramone Hamilton

J'obtenais la même erreur en essayant de restaurer la base de données de sauvegarde SQL 2008 R2 dans SQL 2012 DB. 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 puis j'ai réussi à le restaurer avec succès.

Essaye ça:

Dans les fenêtres de l'assistant de restauration de la base de données, allez dans l'onglet Fichiers, remplacez la destination de restauration de C: par un autre lecteur. Continuez ensuite avec le processus de restauration habituel. Il sera certainement restauré avec succès!

J'espère que ça va t'aider aussi. À votre santé :)

1
Raja Sekhar

J'ai trouvé ceci et cela a fonctionné pour moi:

CREATE LOGIN BackupRestoreAdmin WITH PASSWORD='$tr0ngP@$$w0rd'
GO
CREATE USER BackupRestoreAdmin FOR LOGIN BackupRestoreAdmin
GO
EXEC sp_addsrvrolemember 'BackupRestoreAdmin', 'dbcreator'
GO
EXEC sp_addrolemember 'db_owner','BackupRestoreAdmin'
GO
1
Tom Stickel

Si vous attachez une base de données, consultez la grille "Bases de données à attacher", et plus particulièrement dans la colonne Propriétaire après avoir spécifié votre fichier .mdf. Notez le compte et attribuez-lui toutes les autorisations pour les fichiers mdf et ldf.

1
jgo

J'ai eu cette erreur parce que j'avais coché "Réallouer tous les fichiers dans un dossier" dans l'onglet Fichiers de la fenêtre Restaurer la base de données, mais le chemin par défaut n'existait pas sur mon ordinateur local. J'ai eu les fichiers ldf/mdf dans un autre dossier, une fois que j'ai changé que j'ai pu restaurer.

1
cheriejw

J'ai essayé le scénario ci-dessus et j'ai obtenu la même erreur 5 (accès refusé). J'ai fait une plongée profonde et ai trouvé 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 au service SQL.

Accédez ensuite au fichier, cliquez avec le bouton droit de la souris et sélectionnez l’onglet Sécurité dans Propriétés, puis modifiez-le pour ajouter le nouvel utilisateur.

Enfin, donnez-lui la permission complète afin de donner un accès complet.

Ensuite, à partir de SSMS, essayez de restaurer la sauvegarde.

1
Niroshanth

Dans mon cas, je devais cocher la case dans Overwrite the existing database (WITH REPLACE) sous l'onglet Options de la page Restore Database.

La raison de mon erreur est qu’il existe déjà un fichier MDF dans la base de données qui n’est pas écrasé.

J'espère que cela aidera quelqu'un.

0
Newbee

cela m’est arrivé plus tôt aujourd’hui, j’étais membre du groupe d’administrateurs du serveur local et j’ai un accès sans entrave, ou je le pensais bien. J'ai également coché l'option "remplacer", même s'il n'y a pas de base de données de ce type dans l'instance.

Vous avez découvert qu'il existait auparavant une base de données du même nom et que les fichiers MDF et LDF sont toujours physiquement situés dans les dossiers de données et de journalisation du serveur, mais que les métadonnées réelles sont absentes des sys.databases. le compte de service du serveur SQL ne peut pas non plus écraser les fichiers existants. Constatant également que le propriétaire des fichiers est "inconnu", je devais changer de propriétaire, mais les 2 fichiers ci-dessus étaient maintenant détenus par le groupe d'administrateurs du serveur local, puis renommés.

Enfin, cela a fonctionné.

0
user1465073

Le compte n'a pas accès à l'emplacement du fichier de sauvegarde. Suivez les étapes suivantes pour accéder facilement au Gestionnaire de configuration SQL Server via le Gestionnaire de l'ordinateur.

  1. Cliquez sur le bouton touche Windows + R pour ouvrir la fenêtre Exécuter.
  2. Tapez compmgmt.msc dans la zone Ouvrir:.
  3. Cliquez OK.
  4. Développez Services et applications.
  5. Développez Gestionnaire de configuration SQL Server.
  6. Modifier le compte d'utilisateur dans l'onglet Ouvrir une session en tant que.

Maintenant, vous pouvez restaurer la base de données facilement

0
reza.bm

J'avais exactement le même problème, mais mon correctif était différent: mon entreprise crypte tous les fichiers de mes machines. Après le déchiffrement du fichier, MSSQL n’a eu aucun problème d’accès et a créé la base de données. Cliquez avec le bouton droit de la souris sur le fichier .bak -> Propriétés -> Avancé ... -> Crypter le contenu pour sécuriser les données. Decrypting

0
Radoslaw Jurewicz