Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Aplica-se a:SQL Server
Detalhes
| Attribute | Valor |
|---|---|
| Nome do Produto | SQL Server |
| ID do Evento | 5120 |
| Origem do evento | MSSQLSERVER |
| Componente | SQLEngine |
| Nome simbólico | DSK_FCB_FAILURE |
| Texto da mensagem | Erro de tabela: Não é possível abrir o arquivo físico "%.*ls". Erro no sistema operacional %d: "%ls". |
Explanation
O SQL Server não pôde abrir um arquivo de banco de dados. O erro do sistema operacional fornecido na mensagem aponta para razões subjacentes mais específicas para a falha. Você geralmente pode ver esse erro junto com outros erros, como 17204 ou 17207.
Ação do utilizador
Diagnostique e corrija o erro do sistema operacional e, em seguida, tente novamente a operação. Há vários estados que podem ajudar a Microsoft a restringir a área no produto onde a área está ocorrendo.
O acesso é negado
Se você estiver recebendo o erro do Access is Denied sistema operacional = 5, considere estes métodos:
Verifique as permissões que são definidas do arquivo examinando as propriedades do arquivo no Windows Explorer. O SQL Server usa grupos do Windows para provisionar o Controle de Acesso nos vários recursos de arquivo. Verifique se o grupo apropriado [com nomes como SQLServerMSSQLUser$ComputerName$MSSQLSERVER ou SQLServerMSSQLUser$ComputerName$InstanceName] tem as permissões necessárias no arquivo de banco de dados mencionado na mensagem de erro. Consulte Configurar permissões do sistema de arquivos para acesso ao mecanismo de banco de dados para obter mais detalhes. Verifique se o grupo do Windows realmente inclui a conta de inicialização do serviço SQL Server ou o SID do serviço.
Examine a conta de usuário sob a qual o serviço do SQL Server está sendo executado no momento. Pode utilizar o Gestor de Tarefas do Windows para obter estas informações. Procure o valor "Nome de usuário" para o executável "sqlservr.exe". Além disso, se você alterou recentemente a conta de serviço do SQL Server, saiba que a maneira com suporte para fazer essa operação é usar o utilitário SQL Server Configuration Manager .
Dependendo do tipo de operação (abertura de bancos de dados durante a inicialização do servidor, anexação de um banco de dados, restauração de banco de dados e assim por diante), a conta usada para representação e acesso ao arquivo de banco de dados pode variar. Analise o tópico Protegendo dados e arquivos de log para entender qual operação define qual permissão e para quais contas. Use uma ferramenta como o Monitor de Processo do Windows SysInternals para entender se o acesso ao arquivo está acontecendo no contexto de segurança da conta de inicialização do serviço de instância do SQL Server [ou SID de Serviço] ou de uma conta representada.
Se o SQL Server estiver representando as credenciais de usuário do logon que executa a operação ALTER DATABASE ou CREATE DATABASE, você notará as seguintes informações na ferramenta Process Monitor (um exemplo).
Date & Time: 3/27/2010 8:26:08 PM Event Class: File System Operation: CreateFile Result: ACCESS DENIED Path: C:\Program Files\Microsoft SQL Server\MSSQL13.SQL2016\MSSQL\DATA\attach_test.mdf TID: 4288 Duration: 0.0000366 Desired Access:Generic Read/Write Disposition: Open Options: Synchronous IO Non-Alert, Non-Directory File, Open No Recall Attributes: N ShareMode: Read AllocationSize: n/a Impersonating: DomainName\UserName
Anexando arquivos que residem em um armazenamento conectado à rede
Se não for possível anexar novamente um banco de dados que reside no armazenamento conectado à rede, uma mensagem como essa poderá ser registrada no log do aplicativo.
Msg 5120, Level 16, State 101, Line 1 Unable to open the physical file "\\servername\sharename\filename.mdf". Operating system error 5: (Access is denied.).
Esse problema ocorre porque o SQL Server redefine as permissões de arquivo quando o banco de dados é desanexado. Quando você tenta reanexar o banco de dados, ocorre uma falha devido a permissões de compartilhamento limitadas.
Para resolver, siga estes passos:
Use a opção de inicialização -T para iniciar o SQL Server. Use esta opção de inicialização para ativar o sinalizador de rastreamento 1802 no SQL Server Configuration Manager (consulte Definir sinalizadores de rastreamento com DBCC TRACEON para obter informações sobre o 1802). Para obter mais informações sobre como alterar os parâmetros de inicialização, consulte Opções de inicialização do serviço Mecanismo de Banco de Dados.
Use o comando a seguir para desanexar o banco de dados.
exec sp_detach_db DatabaseName goUse o comando a seguir para anexar novamente o banco de dados.
exec sp_attach_db DatabaseName, '\\Network-attached storage_Path\DatabaseMDFFile.mdf', '\\Network-attached storage_Path\DatabaseLDFFile.ldf' go