Estoy empezando a aprender SQL y tengo un libro que proporciona una base de datos para trabajar. Estos archivos a continuación están en el directorio pero el problema es que cuando ejecuto la consulta, me da este error:
Msg 5120, Nivel 16, Estado 101, Línea 1 No se puede abrir el archivo físico "C: \ Murach \ SQL Server 2008 \ Databases \ AP.mdf". Error del sistema operativo 5: "5 (acceso denegado)".
CREATE DATABASE AP
ON PRIMARY (FILENAME = 'C:\Murach\SQL Server 2008\Databases\AP.mdf')
LOG ON (FILENAME = 'C:\Murach\SQL Server 2008\Databases\AP_log.ldf')
FOR ATTACH
GO
En el libro, el autor dice que debería funcionar, pero no está funcionando en mi caso. Busqué pero no sé exactamente cuál es el problema, así que publiqué esta pregunta.
sql
sql-server
dijai jijfs
fuente
fuente
Respuestas:
La cuenta de servicio del motor de base de datos de SQL Server debe tener permisos para leer / escribir en la nueva carpeta.
Mira esto
fuente
Administrators Group
MSSQL$SQLEXPRESS
), puede que no sea obvio que necesite agregar la cuenta a la lista de permisos de la carpeta como:NT Service\MSSQL$SQLEXPRESS
Una publicación anterior, pero aquí hay un paso a paso que funcionó para SQL Server 2014 que se ejecuta en Windows 7:
Voilá!
Creo que la configuración de la cuenta de inicio de sesión puede haber sido una opción en la instalación, pero de ser así, no era la opción predeterminada y era fácil pasarla por alto si aún no estaba al tanto de este problema.
fuente
Para evitar el problema de acceso denegado, inicié SSMS como administrador y eso me permitió adjuntar una base de datos desde mi disco local. La base de datos se creó en otra instancia de SQL y Windows.
fuente
Este es un problema relacionado con Windows en el que SQL Server no tiene el permiso apropiado para la carpeta que contiene el archivo .bak y, por lo tanto, este error.
La solución más sencilla es copiar su archivo .bak a la ubicación de copia de seguridad SQL predeterminada que tiene todos los permisos necesarios. No necesita jugar con nada más. En SQL SERVER 2012 , esta ubicación es
fuente
Tuve este problema Simplemente ejecute SQL Server como administrador
fuente
Sí, es correcto. Primero debe averiguar su cuenta de servicio de sqlserver, puede verla en el Administrador de tareas cuando presiona ctrl + alt + eliminar al mismo tiempo; Luego, debe otorgar el privilegio de lectura / escritura de "C : \ Murach \ SQL Server 2008 \ Bases de datos "a la cuenta de servicio.
fuente
El problema se debe a la falta de permisos para que SQL Server acceda a los archivos mdf y ldf. Todos estos procedimientos funcionarán:
fuente
Resuelvo este problema agregando
Full control
permiso para ambos.mdf
y.ldf
archivos para elUsers
grupo.fuente
Para mí, se resolvió de la siguiente manera con el estudio de administración de SQL Server: inicie sesión como administrador (inicié sesión como autenticación de Windows), adjunte el archivo mdf (haga clic con el botón derecho en Base de datos | adjuntar | Agregar). usuario normal
fuente
Los permisos reales del servidor no serán importantes en este momento; todo se ve bien. SQL Server en sí mismo necesita permisos de carpeta.
dependiendo de su versión, puede agregar permisos SERVERNAME $ MSSQLSERVER para tocar su carpeta. De lo contrario, debe estar en el directorio predeterminado de BACKUP (ya sea donde lo instaló o predeterminado en c: \ programfiles (x) \ MSSQL \ BACKUP.
fuente
Incluso si sigue los siguientes pasos, PODRÍA recibir el mismo mensaje de error.
Todavía tengo el error de permiso, pero luego noté que en la pantalla Adjuntar, la sección inferior TODAVÍA mostraba el archivo LOG, y el mensaje de error seguía siendo el mismo.
Espero que esto ayude a alguien que hizo lo mismo.
fuente
Solución muy simple.
fuente
Utilicé Entity Framework en mi aplicación y tuve este problema, configuré cualquier permiso en carpetas y servicios de Windows y no funcionó, después de eso, inicio mi aplicación como administrador (haga clic derecho en el archivo exe y seleccione "ejecutar como administrador") y eso funciona multa.
fuente
Si obtiene este error en un
.MDF
archivo en laAPP_DATA
carpeta (o donde sea que lo coloque) para un proyecto de Visual Studio, la forma en que lo hice fue simplemente copiar los permisos de laDATA
carpeta existente aquí (estoy usando SQL Express 2014 para admitir una aplicación anterior):(nota: su ruta de instalación real puede variar, especialmente si el nombre de su instancia es diferente)
Haga doble clic en la
DATA
carpeta primero como administrador para asegurarse de que tiene acceso, luego abra las propiedades en la carpeta e imite lo mismo para laAPP_DATA
carpeta. En mi caso, el usuario que faltaba eraMSSQL$SQLEXPRESS2014
(porque nombré la instanciaSQLEXPRESS2014
, el tuyo puede ser diferente). Ese también es el nombre de usuario del servicio SQL Server.fuente
Por alguna razón, establecer todos los permisos correctos no ayudó en mi caso. Tenía un archivo
db.bak
que no pude restaurar debido al5(Access is denied.)
error. El archivo se colocó en la misma carpeta que otros archivos de copia de seguridad y todos los permisos eran idénticos a otros archivos. Pude restaurar todos los otros archivos excepto estedb.bak
archivo. Incluso intenté cambiar el usuario de inicio de sesión del servicio de SQL Server, sigue siendo el mismo resultado. He intentado copiar el archivo sin efecto.Luego intenté crear un archivo idéntico ejecutando
en lugar de copiar el archivo Y voila funcionó!
db2.bak
restaurado con éxitoSospecho que
5(Access is denied.)
MS SQL puede informar erróneamente de otros problemas al leer el archivo de copia de seguridad .fuente
En Linux, fui a la
/var/opt/mssql/data/
carpeta y abrí una terminal consudo
, luego, cambié mis permisos de archivo * .mdf y * .ldf como se muestra a continuación en el que reemplazayourDB
con el nombre del archivo de la base de datos y el nombremyUser
de usuario actualmente registrado:Después de eso, se volvió a conectar sin ningún problema.
fuente
Significa que el usuario de inicio de sesión SSMS no tiene permiso en el archivo .mdf. Así es como me ha funcionado:
Abrí el SSMS (Ejecutar como administrador) e inicie sesión como usuario administrador, haga clic con el botón secundario en la base de datos, haga clic en Agregar, seleccione el archivo .mdf, haga clic en Aceptar. Hecho.
fuente