SQL Server cópia de banco de dados de 2008 - permissões de arquivo
-
18-09-2019 - |
Pergunta
Para o SQL Server 2008 Developer Edition no Vista 64 bits:
Eu tentei copiar um banco de dados usando uma conta de administrador Vista usando a montar / desmontar método e ele falhou devido a um erro de permissão de arquivo assim que eu dei o usuário que os serviços SQL estão em execução como escrever e modificar para o diretório. A cópia não funcionou. Eu, então, deu-lhe o controle total. A cópia trabalhou.
Isso faz sentido?
Se eu revogar o controle total do usuário, será que causam problemas?
O estranho é que, em um banco de dados de trabalho existente com arquivos em um diretório diferente, não há permissões especiais sobre o diretório e arquivos para o banco de dados, então por que uma cópia requerem controle total?
Solução
Quando você desanexar um DB, o MDF / arquivos FDL pode ser definido com perms mais restritas do que o esperado, como exclusivo para o principal que fez o detach - talvez a conta do serviço SQL Server ou a conta de domínio do usuário que executou a desconexão. Eu tenho no passado teve que adicionar manualmente volta permissões na guia Propriedades> Segurança dos arquivos para outros usuários, ou então os arquivos de agir como se eles estão bloqueadas. Veja também http: // www.onupdatecascade.com/2009/07/sql-server-locks-mdf-and-ldf-files-upon.html
também: http://msdn.microsoft.com/en-us /library/ms189128.aspx
(graças GrumpyOldDBA )
Outras dicas
Se o servidor e / ou dados que você está trabalhando em não requer essas permissões restritivas a ser definido, você pode definir um sinalizador de inicialização no SQL Server que irá substituir essa função. Eu entendo o que a Microsoft está indo para com este - eles assumem se você desanexar um DB eles não querem apenas alguém para ficar com o arquivo; no entanto, eu acho que manter um hacker bom de fazer isso é mais fácil dizer do que fazer, e criptografar o DB é o melhor método para a salvaguarda de dados.
De qualquer forma, há um "sinalizador de rastreamento 1802", que é estranhamente nomeado, uma vez que não tem nada a ver com o rastreamento. Você vai querer adicionar ao seu arranque do SQL no SQL Configuration Manager, se você quiser manter esse comportamento.
https://support.microsoft.com/en-us/kb/922804
Eu mesmo tive o mesmo problema e encontrou a resposta em Stackexchange: https://dba.stackexchange.com/a/77683/11001