Estoy tratando de ejecutar el siguiente script en SQL Server Management Studio:
USE [master]
GO
CREATE DATABASE [test1] ON PRIMARY (
NAME = N'test1',
FILENAME =
N'C:\Program Files\Microsoft SQL Server\MSSQL10.SQLEXPRESS\MSSQL\DATA\test1.mdf',
SIZE = 70656KB , MAXSIZE = UNLIMITED, FILEGROWTH = 1024KB)
LOG ON (
NAME = N'test1_log',
FILENAME =
N'C:\Program Files\Microsoft SQL Server\MSSQL10.SQLEXPRESS\MSSQL\DATA\test1_log.ldf',
SIZE = 164672KB , MAXSIZE = 2048GB , FILEGROWTH = 10%)
Pero recibo el error:
El mensaje 5123, Nivel 16, Estado 1, Línea 2
CREAR ARCHIVO encontró el error 5 del sistema operativo (acceso denegado)
al intentar abrir o crear el archivo físico
'C: \ Archivos de programa \ Microsoft SQL Server \ MSSQL10.SQLEXPRESS \ MSSQL \ DATA \ test1.mdf '.Msg 1802, Nivel 16, Estado 4, Línea 2
CREATE DATABASE falló. Algunos de los nombres de archivos en la lista no se pudieron crear. Verifique los errores relacionados.
Ya tengo todos los permisos de rol para mi usuario, ¿alguna idea sobre lo que está mal?
sql-server
sql-server-2012
thiagocfb
fuente
fuente
CREATE DATABASE [test1]; GO
?Respuestas:
Recibes un error de permisos. La cuenta que ejecuta SQL Server no tiene los derechos necesarios sobre la carpeta que contendrá los archivos de la base de datos.
Debe dar a la cuenta que ejecuta SQL Server (no su cuenta) el control total de C: \ Archivos de programa \ Microsoft SQL Server \ MSSQL10.SQLEXPRESS \ MSSQL \ DATA.
fuente
Network Service
cuenta. Por lo tanto, los derechos apropiados tendrán que modificarse en los directorios respectivos para esta cuenta si ese es el caso también en su PC.Según nuestro hilo de comentarios, parece que te has puesto un poco de lado durante la instalación. El instalador le permite elegir su directorio de datos predeterminado y ( supongo ) establece los permisos apropiados en ese directorio para la cuenta de servicio que especificó.
En su
CREATE DATABASE
declaración está especificando una ubicación, pero ¿fue esa ubicación la que se especificó en la configuración original? ¿Ha cambiado la cuenta de servicio?Una forma de probar esto es simplemente ejecutar un genérico
Si obtiene el mismo error, entonces tal vez la cuenta de servicio ha cambiado o algo sobre los permisos NTFS ha cambiado.
Una ruta de resolución (también basada en una cadena de comentarios) es para confirmar que el servicio que ejecuta SQL Server tiene permisos R / W en la ruta que está especificando. Para hacer esto:
Inicio-> Ejecutar->
services.msc
-> desplácese por la lista de servicios hasta que encuentre SQL Server-> clic derecho-> propiedades-> pestaña Iniciar sesiónAhora ve y asegúrate de que la cuenta tenga el permiso apropiado en ese directorio para hacer lo que necesita hacer.
fuente
Parece que hay un número incorrecto de espacios en la ruta proporcionada, por lo que no coincide con el árbol de carpetas.
El servidor SQL no creará una ruta no existente.
Editar :
tu publicación original dice:
y supongo que estos no son caminos existentes, y como están rodeados de dos puntos, es relevante cuántos espacios hay.
fuente
Microsoft SQL
yServer
, y esto fue extraño para mí porque normalmente debería ser solo un carácter de espacio. No es visible ahora porque tu publicación fue editada por @marc_sEl script anterior que publica en su sección de preguntas es correcto. Es posible que la ruta del archivo que menciona en FILENAME sea incorrecta.
Por favor, use el script que se proporciona a continuación. Simplemente funciona, luego asegúrese de la ruta del archivo que utiliza en su secuencia de comandos.
fuente