Creé una base de datos en mi máquina local y luego hice una copia tables.bak
de seguridad llamada de tabla DataLabTables
.
Moví esa copia de seguridad a una máquina remota sin esa tabla e intenté hacer una restauración, pero recibí el siguiente error:
System.Data.SqlClient.SqlError: el sistema operativo devolvió el error '5 (acceso denegado)' al intentar 'RestoreContainer :: ValidateTargetForCreation' en 'c: \ Archivos de programa \ Microsoft SQL Server \ MSSQL.1 \ MSSQL \ DataLabTables .mdf '.
¿Cómo reparo mis derechos, si ese es el problema?
Desde el mensaje de error, dice que hay un error al validar el objetivo (
c:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\DataLabTables.mdf
) de su operación de restauración.Eso suena como:
a) ese archivo ya existe (porque ya lo ha restaurado anteriormente) y SQL Server lo está utilizando
o
b) ese directorio no existe en absoluto
En su pregunta, mencionó que creó una copia de seguridad para esa tabla; no es así como funcionan las copias de seguridad de SQL Server. Esas copias de seguridad son siempre la base de datos completa (o al menos uno o varios grupos de archivos de esa base de datos).
Mi presentimiento es: ya ha restaurado esa base de datos anteriormente, y ahora, después de una segunda restauración, no marcó la casilla de verificación "Sobrescribir la base de datos existente" en su asistente de restauración, por lo tanto, el archivo existente no se puede sobrescribir y la restauración falla.
El usuario que ejecuta la restauración en su servidor remoto obviamente no tiene acceso a ese directorio en el servidor remoto.C:\program files\....
es un directorio protegido: los usuarios normales (no administradores) no tienen acceso a este directorio (ni a sus subdirectorios).La solución más fácil: intente colocar su archivo BAK en otro lugar (pC:\temp
. Ej. ) Y restaurarlo desde allífuente
RESTORE
comando estándar falla si el archivo existe, incluso si SQL Server no lo está usando (por ejemplo, el MDF / Los archivos LDF permanecen en su lugar después de una separación previa). Encontré esto en una implementación personalizada de envío de registros basada en T-SQL para una migración importante de cientos de bases de datos en las últimas semanas. No estoy seguro de que el mensaje de error fue "acceso denegado", podría haber sido algo menos específico.Estaba teniendo el mismo problema. Resultó que mi
SQL Server
y losSQL Server Agent
servicios selogon as
estaban ejecutando bajo laNetwork Services
cuenta que no tenía acceso de escritura para realizar la restauración de la copia de seguridad.Cambié ambos servicios para iniciar sesión como
Local System Account
y esto solucionó el problema.fuente
Recientemente me enfrenté a este problema con SQL 2008 R2 y la siguiente solución funcionó para mí:
1) Cree una nueva base de datos con el mismo nombre que está tratando de restaurar 2) Mientras restaura, use el mismo nombre que usó anteriormente y en las opciones, haga clic en la opción de sobrescritura
Puede darle una oportunidad a lo anterior si las otras soluciones no funcionan.
fuente
Fuente
fuente
Tuve un problema similar. Traté de restaurar un archivo 2005 .bak y recibí exactamente el mismo error. Seleccioné la opción de sobrescribir también en vano.
mi solución fue otorgarle al usuario SQL acceso al directorio en cuestión, yendo a la carpeta y editando los derechos de acceso a través de la pantalla de propiedades.
fuente
Perdí un par de horas a este problema también. sin embargo lo puso en marcha:
"acceso denegado" en mi caso realmente significaba "acceso denegado". La cuenta de usuario de mssqlstudio en mi dispositivo Windows NO tenía control total de la carpeta especificada en el mensaje de error. Le di el control total. ya no se denegó el acceso y la restauración se realizó correctamente.
¿Por qué se bloqueó la carpeta para el estudio? quién sabe ? Tengo suficientes preguntas para tratar como es sin tratar de responder más.
fuente
Tuve este problema, inicié sesión como administrador y solucionó el problema.
fuente
Otro escenario podría ser la existencia de múltiples rutas de bases de datos. Primero, tome nota de la ruta donde actualmente se almacenan las nuevas bases de datos. Por lo tanto, si crea una nueva base de datos vacía y luego lo hace
Tasks/Restore
, asegúrese de que la ruta que la restauración está tratando de usar sea el mismo directorio en el que se creó la base de datos vacía. Incluso si la ruta de restauración es legal, aún se le negará el acceso error si no es la ruta actual con la que está trabajando. Muy fácil de detectar cuando la ruta no es legal, mucho más difícil de detectar cuando la ruta es legal, pero no la ruta actual.fuente
Lo siento porque no puedo comentar ...
Yo tuve el mismo problema. En mi caso, el problema estaba relacionado con el intento de restaurar en una antigua carpeta de servidor sql (que existía en el servidor). Esto se debe a la antigua copia de seguridad del servidor SQL (es decir, la copia de seguridad de SQL Server 2012) restaurada en un nuevo servidor SQL (SQL Server 2014). El verdadero problema no es muy diferente de la respuesta de @marc_s. De todos modos, cambié solo la carpeta de destino a la nueva carpeta DATA de SQL Server.
fuente
Puede que esta no sea la mejor solución, pero estaba intentando hacer la restauración en SQL Server 2005, pero cambié a SQL Server 2008 y funcionó.
fuente
Tengo un problema como este. Error causado por la compresión habilitada en las carpetas de SQL Server.
fuente
Amigos ... Tuve el mismo problema al restablecer la base de datos y probé todas las soluciones, pero no pude resolverlo. Luego intenté volver a instalar SQL 2005 y el problema se resolvió. En realidad, la última vez que olvidé comprobar la opción de personalizar al instalar SQL ... Viene dos veces durante la instalación y lo compruebo solo para los únicos ...
fuente
En mi caso, tuve que verificar la ruta de respaldo de la base de datos desde donde estaba restaurando. Anteriormente lo había restaurado desde un camino diferente cuando lo hice por primera vez. ¡Arreglé la ruta de respaldo para usar la ruta de respaldo que usé la primera vez y funcionó!
fuente
Terminé haciendo nuevas carpetas para datos y registros y funcionó correctamente, debe haber sido un problema de permiso de carpeta / archivo.
fuente
Esto también sucede si las rutas son correctas, pero la cuenta de servicio no es propietaria de los archivos de datos (sin embargo, todavía tiene suficientes derechos para el acceso de lectura / escritura). Esto puede ocurrir si los permisos para los archivos se restablecieron para que coincidan con los permisos de la carpeta (por supuesto, mientras se detuvo el servicio).
La solución más fácil en este caso es separar cada base de datos y volver a adjuntarla (porque al adjuntar el propietario se cambia para que sea la cuenta de servicio).
fuente
Prueba esto:
En la ventana del asistente Restaurar DB, vaya a la pestaña Archivos, desactive la casilla de verificación "Reubicar todos los archivos a la carpeta" y luego cambie el destino de restauración de C: a otra unidad. Luego proceda con el proceso de restauración regular. Se restaurará con éxito.
fuente
Tuve el mismo problema pero utilicé sql server 2008 r2, debe registrar las opciones y verificar las rutas donde sql guardará los archivos .mdf y .ldf, debe seleccionar la ruta de la instalación de su servidor sql. Resolví mi problema con esto, espero que te ayude.
fuente
Luego intente moverlo a una subcarpeta debajo de C :, pero verifique que el usuario tenga todos los derechos sobre la carpeta que usa.
fuente