Estou tentando executar o seguinte script no 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%)
Mas estou recebendo o erro:
Msg 5123, Level 16, State 1, Line 2
CREATE FILE encontrou o erro 5 do sistema operacional (Acesso negado.)
ao tentar abrir ou criar o arquivo físico
'C:\Program Files\Microsoft SQL Server\MSSQL10.SQLEXPRESS\MSSQL\ DATA\test1.mdf'.Msg 1802, Level 16, State 4, Line 2
CREATE DATABASE falhou. Alguns nomes de arquivo listados não puderam ser criados. Verifique os erros relacionados.
Já tenho todas as permissões de função para o meu usuário, alguma ideia sobre o que está errado?
Você está recebendo um erro de permissão. A conta que está executando o SQL Server não possui os direitos necessários na pasta que conterá os arquivos do banco de dados.
Você precisa dar à conta que está executando o SQL Server (não sua conta) controle total de C:\Program Files\Microsoft SQL Server\MSSQL10.SQLEXPRESS\MSSQL\DATA.
Com base em nosso tópico de comentários, parece que você pode ter ficado um pouco de lado durante a instalação. O instalador permite que você escolha seu diretório de dados padrão e (eu presumo ) define as permissões apropriadas nesse diretório para a conta de serviço que você especificou.
Em sua
CREATE DATABASE
declaração, você está especificando um local, mas esse local foi o especificado na configuração original? A conta de serviço mudou?Uma maneira de testar isso é apenas executar um genérico
Se você receber o mesmo erro, talvez a conta de serviço tenha mudado ou algo sobre as permissões NTFS tenha mudado.
Um caminho de resolução (também baseado na cadeia de comentários) serve para confirmar se o serviço que está executando o SQL Server tem permissões de R/W no caminho que você está especificando. Para fazer isso:
Iniciar-> Executar->
services.msc
-> percorra a lista de serviços até encontrar o SQL Server-> clique com o botão direito do mouse-> propriedades-> guia LogonAgora vá e certifique-se de que a conta tenha a permissão apropriada nesse diretório para fazer o que precisa fazer.
Parece que há um número incorreto de espaços no caminho fornecido, portanto, não está correspondendo à árvore de pastas.
O servidor SQL não criará um caminho não existente.
Edit :
Sua postagem original diz:
e eu acho que esses não são caminhos existentes, e como eles são cercados por dois pontos, é relevante quantos espaços existem.
O script acima que você publica na seção de perguntas está correto. Pode ser possível que o caminho do arquivo mencionado em FILENAME esteja errado.
Por favor, use o script abaixo. Ele simplesmente funciona, então certifique-se do caminho do arquivo que você usa em seu script.