Problemas com Linked Server

12/09/2014

0

Boa tarde, estou com um problema com uso de um Linked Server entre o SQL Server 2012 e uma Base de Dados em Access 2010.
O arquivo accdb é um modelo com tabelas já criadas porém sem dados e com uma senha no arquivo.

Seguem as configurações que utilizei.

exec sp_addlinkedserver @server = 'TempAccess'
, @provider = 'Microsoft.ACE.OLEDB.12.0'
, @srvproduct = 'Access 2007'
, @datasrc = 'C:\Users\Ti\Desktop\Dados.accdb'
, @provstr= ';PWD=PasswordDoAccess'

exec sp_addlinkedsrvlogin
, @rmtsrvname='TempAccess'
, @useself='False'
, @locallogin=NULL
, @rmtuser=NULL
, @rmtpassword=NULL

Ai vem o problema, tenho um usuário por Windows Authentication e outro usuário por SQL Server Authentication. Eu consigo criar o link utilizando qualquer um dos 2 porém só consigo fazer alguma coisa tipo Select ou Insert com o usuário que tem Windows Authentication, quando tento fazer qualquer coisa pelo usuário do SQL Server ele da o seguinte erro:

OLE DB provider "Microsoft.ACE.OLEDB.12.0" for linked server "TempAccess" returned message "O mecanismo de banco de dados do Microsoft Access não pode abrir ou gravar o arquivo 'C:\Users\TI\Desktop\Dados.accdb'. Ele já foi aberto em modo exclusivo por outro usuário, ou você precisa de permissão para exibir e gravar os dados.".
Mensagem 7303, Nível 16, Estado 1, Procedimento sp_tables_ex, Linha 41
Cannot initialize the data source object of OLE DB provider "Microsoft.ACE.OLEDB.12.0" for linked server "TempAccess".

E a situação é que o que eu preciso mesmo é que o usuário por SQL Server Authentication faça esses Inserts pois ele é utilizado para logar um Sistema VB.NET ao Access e fazer a atualização da Base.
Adriano Gomes

Adriano Gomes

Responder

Posts

16/09/2014

Adriano Gomes

Ninguém?
Responder

16/09/2014

Fabiano Carvalho

Você já tentou mudar o usuário que utuliza o link ? Dar permissao de leitura/escrita na pasta ?
O usuario que executa o serviço precisa ter a permissão.
Responder

16/09/2014

Adriano Gomes

Então, e como eu poderia dar permissão de acesso a a uma pasta do windows para um Login do SQL? Pois a única permissão que consigo mexer é na 'NT SERVICE\MSSQLSERVER' não sei como dar permissão a um login.

E a ideia principal é que o usuário do sistema (VB. NET) selecione uma pasta em uma caixa de seleção e nesta pasta será copiado o accdb modelo e nele inserido os dados via linked server do banco de dados SQL de acordo com a Empresa selecionada no VB
O sistema VB.Net que utilizara esse login que esta me deixando louco xD
Responder

17/09/2014

Fabiano Carvalho

O usuário SQL não acessa a pasta e sim o usuário que executa o serviço, lá no services.msc, esse usuário precisa da permissão.
Responder

17/09/2014

Adriano Gomes

Cara sou meio leigo nesse negócio de permissões, pelo que entendi existe 1 usuário no services.msc que é responsável por todos os logins do SQL Server? eu até tentei dar permissões para o serviço 'SQL Server' que utiliza o usuário 'NT Service\MSSQLSERVER' em uma pasta para testar mas não adiantou de nada e se for isto da permissão do usuário que executa o serviço, deveria funcionar igual tanto para Windows Authentication quanto para SQL Authentication estou certo?
Responder

24/09/2014

Adriano Gomes

Ninguém mais?
Responder

Que tal ter acesso a um e-book gratuito que vai te ajudar muito nesse momento decisivo?

Ver ebook

Recomendado pra quem ainda não iniciou o estudos.

Eu quero
Ver ebook

Recomendado para quem está passando por dificuldades nessa etapa inicial

Eu quero

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar