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:
A mensagem 5123, nível 16, estado 1, linha 2
CREATE FILE encontrou o erro do sistema operacional 5 (acesso negado.)
Ao tentar abrir ou criar o arquivo físico
'C: \ Arquivos de Programas \ Microsoft SQL Server \ MSSQL10.SQLEXPRESS \ MSSQL \ DATA \ test1.mdf '.Msg 1802, nível 16, estado 4, linha 2
CREATE DATABASE falhou. Alguns nomes de arquivo listados não puderam ser criados. Verifique os erros relacionados.
Já tem todas as permissões de função para meu usuário, alguma idéia sobre o que está errado?
sql-server
sql-server-2012
thiagocfb
fonte
fonte
CREATE DATABASE [test1]; GO
?Respostas:
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 fornecer à conta que está executando o SQL Server (não a sua conta) o controle total de C: \ Arquivos de Programas \ Microsoft SQL Server \ MSSQL10.SQLEXPRESS \ MSSQL \ DATA.
fonte
Network Service
conta. Portanto, os direitos apropriados deverão ser modificados nos respectivos diretórios dessa conta, se esse também for o caso no seu PC.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 o seu diretório de dados padrão e (eu supor ) define as permissões apropriadas nesse diretório para a conta de serviço que você especificou.
Na 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 é executar apenas um genérico
Se você receber o mesmo erro, talvez a conta de serviço tenha sido alterada ou algo sobre as permissões NTFS.
Um caminho de resolução (também baseado na sequência de comentários) é confirmar que 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 garanta que a conta tenha a permissão apropriada nesse diretório para fazer o que precisa.
fonte
Parece que há um número incorreto de espaços no caminho fornecido, portanto, não está correspondendo à árvore de pastas.
Servidor SQL não criará um caminho inexistente.
Editar :
sua postagem original diz:
e acho que esses não são caminhos existentes e, como são classificados por dois pontos, é relevante a quantidade de espaços existentes.
fonte
Microsoft SQL
eServer
, e isso foi estranho para mim, porque normalmente deveria ser apenas um caractere de espaço. Não está visível agora porque o seu post foi editado por @marc_sO script acima que você postou 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 fornecido abaixo. Simplesmente funciona e verifique se o caminho do arquivo que você usa no seu script.
fonte