PROBLEMA: "Erro não especificado" Erro 7399 usando OPENROWSET contra banco de dados Jet

IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine Translation ou MT), não tendo sido portanto traduzido ou revisto por pessoas. A Microsoft possui artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais, com o objetivo de oferecer em português a totalidade dos artigos existentes na base de dados de suporte. No entanto, a tradução automática não é sempre perfeita, podendo conter erros de vocabulário, sintaxe ou gramática. A Microsoft não é responsável por incoerências, erros ou prejuízos ocorridos em decorrência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza atualizações freqüentes ao software de tradução automática (MT). Obrigado.

Clique aqui para ver a versão em Inglês deste artigo: 296711
Este artigo foi arquivado. É oferecido "como está" e não será mais atualizado.
Sintomas
Quando você executa uma consulta usando a função OPENROWSET em um banco de dados Jet, essa mensagem de erro ocorre:
Servidor: Mensagem 7399, nível 16, estado 1, linha 1
Provedor OLE DB 'Microsoft.Jet.OLEDB.4.0' relatou um erro.
[Provedor OLE/DB retornado mensagem: não especificado erro]

Esse problema também ocorre com qualquer consulta de servidor vinculado que usa o provedor Jet, como a função OPENQUERY ou a consulta Transact-SQL com nomes de quatro partes.
Causa
O mecanismo Jet necessita para criar arquivos temporários. Para criar os arquivos temporários, o mecanismo Jet usa as variáveis de ambiente TEMP e TMP do sistema. Se as variáveis de ambiente TEMP e TMP do sistema não existirem, o Jet usa a pasta % WINDIR %. Se a conta de serviço do SQL Server não tem permissões para criar, gravar, excluir e ler arquivos na pasta % WINDIR % ou para a pasta apontado pela variável de ambiente do sistema TEMP ou TMP, ocorrerá o erro.
Como Contornar
Para contornar esse problema, use dos dois métodos a seguir.

método 1
  1. Configure as variáveis de ambiente de sistema TEMP e TMP para apontar para uma pasta (por exemplo, C:\Temp).
  2. Defina as permissões à conta de serviço SQL Server nesta pasta, como controle total.
  3. Reinicie o servidor.

Observação Ao conceder controle total para a conta de serviço do SQL Server, qualquer usuário que se conecta ao computador que está executando o SQL Server, usando a autenticação do Windows deve também ter controle total para os diretórios TEMP e TMP mesmos que usa a conta de serviço do SQL Server. Antes de instanciar o provedor OLE DB, o SQL Server representa a conta que está se conectando ao computador que está executando SQL Server se ele estiver usando uma conexão confiável.

método 2
  • Se não houver uma variável de ambiente TEMP ou TMP do sistema, defina as permissões como a conta de serviço do SQL Server na pasta % WINDIR % como controle total - ou -

  • Verifique o serviço SQL Server conta um membro de um grupo que tenha essas permissões na pasta % WINDIR %.

Aviso: este artigo foi traduzido automaticamente

Propriedades

ID do Artigo: 296711 - Última Revisão: 12/06/2015 02:16:38 - Revisão: 4.2

Microsoft SQL Server 2000 Standard Edition, Microsoft SQL Server 7.0 Standard Edition

  • kbnosurvey kbarchive kbmt kbprb KB296711 KbMtpt
Comentários