Permissão ao OpenRowSet para SQL Login

Olá pessoal!!!

Surgiu uma solicitação, onde um usuário pediu permissão para o comando OpenRowSet.

O usuário queria escrever em um excel através do banco de dados, mas teria que ser via t-sql.

O comando que o usuário queria rodar é o abaixo:


insert into OPENROWSET( 'Microsoft.ACE.OLEDB.12.0', 'Excel 12.0;Database=\\caminho\planilha.xlsx;', 'SELECT * FROM [Sheet1$]')

select * from Banco.dbo.Tabela

Primeiramente eu tive que instalar o provider “Microsoft.ACE.OLEDB.12.0”, que se encontra no link: “http://www.microsoft.com/en-us/download/details.aspx?id=13255”.

Após a instação do provider “Microsoft.ACE.OLEDB.12.0”, veio um dilema, qual a permissão seria dada para o usuário SQL Login para o comando OpenRowSet?

Pesquisei na documentação da microsoft “https://technet.microsoft.com/pt-br/library/ms175915(v=sql.105).aspx” e identifiquei que seria necessário a concessão de permissão da serverrole: bulkadmin.

Mesmo após a permissão acima, o usuário apresentou o seguinte erro: Ad hoc access to OLE DB provider ‘Microsoft.ACE.OLEDB.12.0’ has been denied.

Identifiquei no link “http://dba.stackexchange.com/questions/61739/help-with-sql-server-error-ad-hoc-access-to-ole-db-provider-microsoft-ace-oled”, que seria necessário registrar uma chave no Registry Editor, ou o regedit.

Os passos que segui foram os seguintes:

Passo 01: Escrevi regedit

Passo 02: Dentro do “Registry Editor”, fui em HKEY_LOCAL_MACHINE

Passo 03: Fui em SOFTWARE

Passo 04: Fui em Microsoft

Passo 05: Fui em Microsoft Sql Server

Passo 06: Fui em MSSQL10_50.MSSQLSERVER

Passo 07: Fui em Providers

Passo 08: Fui em Microsoft.ACE.OLEDB.12.0

Após chegar na pasta “Microsoft.ACE.OLEDB.12.0”, adicionei a chave “DWORD (32-bit) Value” com o nome “DisallowAdhocAccess” e com o valor hexadecimal 0 (zero).

Excel

Pronto! após a permissão de bulkadmin e a adição da chave no Registry Editor o usuário teve permissão no comando OpenRowSet.

OBS.: É importante que a conta de serviço do SQL tenha permissão na pasta de origem, onde será feito a leitura e/ou escrita do excel.

Anúncios

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair /  Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair /  Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair /  Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair /  Alterar )

Conectando a %s