none
Acesso a uma planilha via Microsoft.ACE.OLEDB.12.0 RRS feed

  • Pergunta

  • Pessoal,

    Tenho um servidor com win 2008 R2 64bits, com SQL 2008 R2 64bit, com o office 64 bits e com o drive ACE.OLEDB.12.0 64 bits.

    Eu consigo rodar esse select sem problemas, entretanto outras pessoas logadas com usuários do domínio não conseguem mesmo tendo permissão FULL no caminho de rede e na planilha e sysadmin no banco de dados (base de teste).

    select *
    FROM OPENROWSET('Microsoft.ACE.OLEDB.12.0',
    'Excel 12.0;Database=\\caminho\teste.xlsx;',
    'SELECT * from [Dados$]') A

    O mais incrível é que essas pessoas que não conseguem, logando com um usuário com autenticação SQL, elas conseguem executar essa query da máquina deles com sucesso.

    Alguém já passou por esse problema?

    Agradeço desde já.


    Fabrício França Lima | MCP, MCTS, MCITP | Visite meu site: http://fabriciolima.net | Dicas de artigos SQL: Siga-me no twitter @fabriciodba.
    terça-feira, 16 de agosto de 2011 15:26

Respostas

  • Fabricio,

     

    Não fique bravo comigo, ja passei por isso e ao ver a resposta voce ira ficar chateado (Assim como fiquei quando descobri hahahah)

    Apenas abra o management studio como administrador clicando com o botão direito, e conecte-se via usuario de rede, a query ira funionar.


    Fabrizzio A. Caputo
    Certificações:
    Oracle OCA 11g
    MCITP SQL Server 2008 Implementation and Maintenance
    MCITP SQL Server 2008 Developer
    Blog Pessoal: www.fabrizziocaputo.wordpress.com
    Blog Empresa: www.tripletech.com.br/blog
    Twitter: @FabrizzioCaputo
    Email: fabrizzio.antoniaci@gmail.com
    terça-feira, 16 de agosto de 2011 15:31
    Moderador
  • Fabrício,

    Pior que é isso mesmo, eu também tive um problema simular a algum tempo atrás em uma das aulas que estava apresentando processos de Import/Export dados entre o SQL Server 2008 e Office 64.

    Vale destacar que existe uma incompatibilidade entre o Office 64 em relação ao SQL Server 2008 e R2 que até o presente momento eu não verifiquei se as novas atualizações liberadas pela Microsoft corrigem este problema.


    Pedro Antonio Galvão Junior [MVP | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados | SorBR.Net | Professor Universitário | MSIT.com]
    terça-feira, 16 de agosto de 2011 17:06
    Moderador
  • fabricio,

     

    Então, tive problemas com isso em um cliente, o que eu fiz? Criei uma proc que executa com um usuario ADM (No caso criei como SA e coloquei EXECUTE AS OWNER), e dei permissao na proc, ela por si ja faz o select


    Fabrizzio A. Caputo
    Certificações:
    Oracle OCA 11g
    MCITP SQL Server 2008 Implementation and Maintenance
    MCITP SQL Server 2008 Developer
    Blog Pessoal: www.fabrizziocaputo.wordpress.com
    Blog Empresa: www.tripletech.com.br/blog
    Twitter: @FabrizzioCaputo
    Email: fabrizzio.antoniaci@gmail.com
    terça-feira, 16 de agosto de 2011 17:53
    Moderador

Todas as Respostas

  • Fabricio,

     

    Não fique bravo comigo, ja passei por isso e ao ver a resposta voce ira ficar chateado (Assim como fiquei quando descobri hahahah)

    Apenas abra o management studio como administrador clicando com o botão direito, e conecte-se via usuario de rede, a query ira funionar.


    Fabrizzio A. Caputo
    Certificações:
    Oracle OCA 11g
    MCITP SQL Server 2008 Implementation and Maintenance
    MCITP SQL Server 2008 Developer
    Blog Pessoal: www.fabrizziocaputo.wordpress.com
    Blog Empresa: www.tripletech.com.br/blog
    Twitter: @FabrizzioCaputo
    Email: fabrizzio.antoniaci@gmail.com
    terça-feira, 16 de agosto de 2011 15:31
    Moderador
  • Fabrício,

    Pior que é isso mesmo, eu também tive um problema simular a algum tempo atrás em uma das aulas que estava apresentando processos de Import/Export dados entre o SQL Server 2008 e Office 64.

    Vale destacar que existe uma incompatibilidade entre o Office 64 em relação ao SQL Server 2008 e R2 que até o presente momento eu não verifiquei se as novas atualizações liberadas pela Microsoft corrigem este problema.


    Pedro Antonio Galvão Junior [MVP | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados | SorBR.Net | Professor Universitário | MSIT.com]
    terça-feira, 16 de agosto de 2011 17:06
    Moderador
  • Obrigado pela atenção pessoal,

    E se a pessoa não for administradora da máquina?

    Tenho dois setores aqui na empresa que acessam o SSMS mas não são administradores.

    Nesse caso, não tem solução?

    Júnior, que tipo de compatibilidade existe, pois estou acabando de montar um novo server todo 64 bits para uma migração.

    Abraços

     


    Fabrício França Lima | MCP, MCTS, MCITP | Visite meu site: http://fabriciolima.net | Dicas de artigos SQL: Siga-me no twitter @fabriciodba.
    terça-feira, 16 de agosto de 2011 17:52
  • fabricio,

     

    Então, tive problemas com isso em um cliente, o que eu fiz? Criei uma proc que executa com um usuario ADM (No caso criei como SA e coloquei EXECUTE AS OWNER), e dei permissao na proc, ela por si ja faz o select


    Fabrizzio A. Caputo
    Certificações:
    Oracle OCA 11g
    MCITP SQL Server 2008 Implementation and Maintenance
    MCITP SQL Server 2008 Developer
    Blog Pessoal: www.fabrizziocaputo.wordpress.com
    Blog Empresa: www.tripletech.com.br/blog
    Twitter: @FabrizzioCaputo
    Email: fabrizzio.antoniaci@gmail.com
    terça-feira, 16 de agosto de 2011 17:53
    Moderador
  • Show de bola Fabrício.

    Funcionou perfeitamente com a criação de uma procedure com um EXECUTE AS SQLLOGIN. Só um detalhe é que a database tinha que ter a opção Trustworthy como ON.

    Agora que já tenho uma solução, vocês saberiam o motivo desse problema? É um BUG?

    Porque o meu login de AD acessa e o de outras pessoas não? Onde deveria dar permissão para elas para que funcionassem?

    Valeu!!!


    Fabrício França Lima | MCP, MCTS, MCITP | Visite meu site: http://fabriciolima.net | Dicas de artigos SQL: Siga-me no twitter @fabriciodba.
    terça-feira, 16 de agosto de 2011 18:31
  • Fabricio,

     

    Não sei se é um bug, mas é um negocinho chato, até onde eu vejo, para se executar diretamente, tem que ser adm local ao menos... infelizmente não sei maiores detalhes, mas vou pesquisar e qualquer coisa posto aqui....


    Fabrizzio A. Caputo
    Certificações:
    Oracle OCA 11g
    MCITP SQL Server 2008 Implementation and Maintenance
    MCITP SQL Server 2008 Developer
    Blog Pessoal: www.fabrizziocaputo.wordpress.com
    Blog Empresa: www.tripletech.com.br/blog
    Twitter: @FabrizzioCaputo
    Email: fabrizzio.antoniaci@gmail.com
    terça-feira, 16 de agosto de 2011 18:33
    Moderador
  • Tranquilo. Obrigado pela atenção.

    Nos vemos no SQLSAT ?


    Fabrício França Lima | MCP, MCTS, MCITP | Visite meu site: http://fabriciolima.net | Dicas de artigos SQL: Siga-me no twitter @fabriciodba.
    terça-feira, 16 de agosto de 2011 18:54
  • Uhul!, Claro!
    Fabrizzio A. Caputo
    Certificações:
    Oracle OCA 11g
    MCITP SQL Server 2008 Implementation and Maintenance
    MCITP SQL Server 2008 Developer
    Blog Pessoal: www.fabrizziocaputo.wordpress.com
    Blog Empresa: www.tripletech.com.br/blog
    Twitter: @FabrizzioCaputo
    Email: fabrizzio.antoniaci@gmail.com
    terça-feira, 16 de agosto de 2011 18:55
    Moderador
  • Podria detalhar por favor criei o procedimento mas continuo recebendo erro

    use Escola go drop procedure abremdb go CREATE PROCEDURE abremdb -- Add the parameters for the stored procedure here --<@Param1, sysname, @p1> <Datatype_For_Param1, , int> = <Default_Value_For_Param1, , 0>, --<@Param2, sysname, @p2> <Datatype_For_Param2, , int> = <Default_Value_For_Param2, , 0> AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from -- interfering with SELECT statements. SET NOCOUNT ON; -- Insert statements for procedure here --SELECT <@Param1, sysname, @p1>, <@Param2, sysname, @p2> exec sp_configure 'show advanced options', 1; RECONFIGURE; exec sp_configure 'Ad Hoc Distributed Queries', 1; RECONFIGURE; EXEC master.dbo.sp_MSset_oledb_prop N'Microsoft.ACE.OLEDB.12.0', N'AllowInProcess', 1 EXEC master.dbo.sp_MSset_oledb_prop N'Microsoft.ACE.OLEDB.12.0', N'DynamicParameters', 1

    SELECT Nome, Endereço
       FROM OPENROWSET('Driver={Microsoft Access Driver (*.mdb, *.accdb)};DBQ=C:\escolas\' ,
          'Cadastro.mdb';
          'admin';'',AlunoCadastro); END GO




    Mensagem 7308, Nível 16, Estado 1, Procedimento abremdb, Linha 29
    O provedor OLE DB 'Microsoft.ACE.OLEDB.12.0' não pode ser utilizado para consultas distribuídas porque está configurado para execução em modo STA.
    Mensagem 2812, Nível 16, Estado 62, Linha 1


    Membro do forum


    sexta-feira, 1 de junho de 2012 17:09