Inicialização de arquivos de bancos de dados

Arquivos de dados e de log são inicializados para substituir todos os dados existentes que foram deixados no disco por arquivos previamente excluídos. Primeiro, os arquivos de dados e de log são inicializados ao serem completados com zeros quando você executa uma das seguintes operações:

  • Criar um banco de dados.

  • Adicionar arquivos, log ou dados a um banco de dados existente.

  • Aumentar o tamanho de um arquivo existente (inclusive operações de aumento automático).

  • Restaurar um banco de dados ou grupo de arquivos.

A inicialização dos arquivos faz com que essas operações demorem mais. Porém, quando os dados são gravados nos arquivos pela primeira vez, o sistema operacional não tem de completar os arquivos com zeros.

Inicialização imediata de arquivo

No SQL Server, os arquivos de dados podem ser inicializados de imediato. Isso permite a execução rápida das operações de arquivo mencionadas anteriormente. A inicialização imediata de um arquivo recupera espaço em disco sem encher esse espaço com zeros. Ao contrário, o conteúdo de disco é substituído à medida que novos dados são gravados nos arquivos. Arquivos de log não podem ser inicializados de imediato.

ObservaçãoObservação

A inicialização imediata de arquivo só está disponível no MicrosoftWindows XP Professional ou Windows Server 2003 ou em versões posteriores.

A inicialização imediata de arquivo só está disponível se a conta de serviço do SQL Server (MSSQLSERVER) tiver direito SE_MANAGE_VOLUME_NAME. Os membros do grupo administrador do Windows têm esse direito e podem atribuí-lo a outros usuários adicionando-os à política de segurança Executar tarefas de manutenção de volume. Para obter mais informações sobre como atribuir direitos de usuário, consulte a documentação do Windows.

Considerações sobre segurança

Como o conteúdo excluído do disco é substituído apenas à medida que novos dados são gravados nos arquivos, o conteúdo excluído poderia ser acessado por um principal não autorizado. Embora o arquivo de banco de dados esteja associado à instância do SQL Server, essa ameaça de divulgação de informações é reduzida pela lista de controle de acesso discricionário (DACL) no arquivo. Essa DACL só permite acesso ao arquivo à conta de serviço do SQL Server e ao administrador local. Porém, quando o arquivo é desassociado, ele pode ser acessado por um usuário ou serviço que não tenha direito SE_MANAGE_VOLUME_NAME. Existe uma ameaça semelhante ao se fazer backup do banco de dados. O conteúdo excluído pode ficar disponível para um usuário ou serviço não autorizado se o arquivo de backup não for protegido com uma DACL adequada.

Se o potencial de divulgação do conteúdo excluído for uma preocupação, você deve tomar uma ou ambas as providências seguintes:

  • Sempre se certifique de que todos os arquivos de dados desassociados e arquivos de backup tenham DACL restritivas.

  • Desabilite a inicialização de arquivo imediata para a instância do SQL Server revogando o direito SE_MANAGE_VOLUME_NAME da conta de serviço do SQL Server.

ObservaçãoObservação

Desabilitar a inicialização de arquivos imediata só afeta os arquivos que sejam criados ou tenham seu tamanho aumentado depois de o direito do usuário ter sido revogado.