2010-08-16 84 views
51

Quiero restaurar una base de datos desde un archivo (Tareas-> Restaurar-> Base de datos; luego de seleccionar desde el dispositivo y seleccionar el archivo) a través de SQL Server Management Studio.mssql '5 (Acceso denegado)' error al restaurar la base de datos

Después de eso, me sale este error:

The operating system returned the error '5(Access is denied.)' while attempting 'RestoreContainer::ValidateTargetForCreation' on 'E:\Program Files\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\DATA\XXXXXX.mdf'. Msg 3156, Level 16, State 8, Server XXXX, Line 2

¿Cómo puedo solucionar este problema? ¿Es un error de seguridad?

Respuesta

65

La cuenta con la que se ejecuta el servidor sql no tiene acceso a la ubicación donde tiene el archivo de copia de seguridad o está intentando restaurar la base de datos. Puede usar Administrador de configuración del servidor SQL para encontrar qué cuenta se utiliza para ejecutar la instancia de SQL Server y luego asegúrese de que esa cuenta tenga control total sobre el archivo .BAK y la carpeta donde se restaurará el MDF.

enter image description here

+11

Cambié a "Sistema local" y funcionó. – Seva

+2

Agregué el usuario "NT Service \ MSSQLSERVER" a la lista de "Grupo o nombres de usuario" permitida y funcionó – slava

4

simplemente me encontré con este mismo problema, pero tuvo un arreglo diferente. Básicamente, tenía instalados SQL Server y SQL Server Express en mi computadora. Esto no funcionaría cuando intenté restaurar a SQL Express, pero funcionó correctamente cuando lo restauré a SQL Server.

+0

+1 Esto puede ser un escenario particularmente desagradable que lleva a perder demasiado tiempo en depurar el error – demongolem

1

me encontré con esto, y funcionó para mí:

CREATE LOGIN BackupRestoreAdmin WITH PASSWORD='[email protected]$$w0rd' 
GO 
CREATE USER BackupRestoreAdmin FOR LOGIN BackupRestoreAdmin 
GO 
EXEC sp_addsrvrolemember 'BackupRestoreAdmin', 'dbcreator' 
GO 
EXEC sp_addrolemember 'db_owner','BackupRestoreAdmin' 
GO 
130

Recientemente tuve este problema. La solución para mí fue ir a la página de Archivos del cuadro de diálogo Restaurar base de datos y marcar "Reubicar todos los archivos en la carpeta". Restore Database dialog

+3

Gracias por esto . Esta fue la mejor solución en mi caso, porque la base de datos fuente estaba en una unidad que tengo la intención de eliminar del sistema. La reubicación fue una parte necesaria del movimiento. –

+1

Esta solución funcionó para mí también – Dhatri

0

En mi caso tuve que marcar la casilla en Overwrite the existing database (WITH REPLACE) bajo OptionsRestore Database pestaña en la página.

La razón por la que recibo este error: porque ya había un archivo MDF presente para la base de datos y no se sobrescribió.

Espero que esto ayude a alguien.

1

Si está adjuntando una base de datos, eche un vistazo a la grilla "Bases de datos para adjuntar", y específicamente en la columna Propietario después de haber especificado su archivo .mdf. Anote la cuenta y proporcione Permisos completos para los archivos mdf y ldf.

1

Intenté la situación anterior y obtuve el mismo error 5 (acceso denegado). Hice una inmersión profunda y descubrí que el archivo .bak debería tener acceso a la cuenta del servicio SQL. Si no está seguro, escriba services.msc en Inicio -> Ejecutar, luego verifique la cuenta de inicio de sesión del Servicio SQL.

Luego vaya al archivo, haga clic con el botón derecho y seleccione la pestaña Seguridad en Propiedades, luego edite para agregar el nuevo usuario.

Finalmente, déle permiso total para dar acceso completo.

Luego, desde SSMS intente restaurar la copia de seguridad.

+1

Aún no tiene suficiente representante para adjuntar una captura de pantalla directamente, así que pegue el enlace como un comentario en esta publicación y alguien lo pondrá por usted. –

+0

Esta es la única respuesta con contexto que funciona para una instancia de estilo de marco Entity del problema donde creo que no hay un archivo .BAK. (Primero el código - marco de la entidad - migración de semilla de la base de datos inicial) Tienes mucha gratitud, ¡la pasé después de pasar horas buscando una respuesta que tuviera sentido! – Mitchb

1

Recibí el mismo error al intentar restaurar SQL 2008 R2 backup db en SQL 2012 DB. Supongo que el error se debe a permisos insuficientes para colocar los archivos .mdf y .ldf en la unidad C. Intenté una cosa simple y logré restaurarla exitosamente.

Prueba esto:

En las ventanas del asistente de restauración de base de datos, vaya a la pestaña Archivos, cambiar el destino de la restauración de C: a alguna otra unidad. Luego proceda con el proceso de restauración regular. Definitivamente obtendrá restauraciones con éxito!

Espero que esto te ayude también. Saludos :)

6

Bueno, en mi caso, la solución fue bastante simple y recta.

Tuve que cambiar solo el valor de log On As valor.

Pasos para Resolve-

  1. abierto Sql Server Configuration manager
  2. derecho click on SQL Server (MSSQLSERVER)
  3. Ir a Properties

enter image description here

  1. cambio log On As valor a LocalSystem

enter image description here

Con la esperanza de que esto le ayudará también :)

0

I h exactamente el mismo problema pero mi solución fue diferente: mi compañía está encriptando todos los archivos en mis máquinas. Después de descifrar el archivo, MSSQL no tuvo problemas para acceder y creó la base de datos. Simplemente haga clic con el botón derecho en .bak archivo ->Propiedades ->Avanzado ... ->Encripte los contenidos para proteger los datos. Decrypting

0

me sucedió hoy, fui miembro del grupo de administración del servidor local y tuve acceso sin restricciones, o eso creía. También marqué la opción "reemplazar", aunque no haya dicho DB en la instancia.

Descubrí que solía haber DB del mismo nombre allí, y los archivos MDF y LDF aún se encuentran físicamente ubicados en las carpetas de datos y registros del servidor, pero los metadatos reales faltan en las bases de datos sys.databases. la cuenta de servicio del servidor SQL tampoco puede sobrescribir los archivos existentes. Descubrí también que el propietario de los archivos es "desconocido", tuve que cambiar la propiedad, a los 2 archivos anteriores para que ahora sea propiedad del grupo de administración del servidor local, y luego lo renombré.

Entonces, finalmente, funcionó.

0

Recibí este error porque marqué "Reasignar todos los archivos a la carpeta" en la pestaña Archivos de la ventana Restaurar base de datos, pero la ruta predeterminada no existía en mi máquina local.Tenía los archivos ldf/mdf en otra carpeta, una vez que cambié eso pude restaurar.

Cuestiones relacionadas