none
Erro de autenticação ao executar Job RRS feed

  • Pergunta

  • Pessoal, estou tendo um problema ao executar um Job, este foi programado para rodar uma proc que por sua vez faz a leitura de dados em outra base via linked server. Abaixo o cenário e o problema detalhado:

    SERVER A

    SERVER B

    - o objetivo é obter alguns dados do server A e atualizar diariamente o server B, tenho uma conexão com o server A via linked server e a autenticação é via windows authentication (contexto).

    - tenho algumas proc criadas no server B, que trazem os dados de A o inserem em B.

    Até aqui, sem nenhum problema.

    JOB - CARGA

    - job para agendamento da execução das proc criadas em B, que me retorna o seguinte erro: "Access to the remote server is denied because the current security context is not trusted."

    Estou usando o sql 2005, nao sei se o mesmo permite isso, pois já realizei algo bem próximo no 2012. É realmente possível fazer isso por conta do modo de autenticação do meu linked server? Ou o Problema é com o Job? 

    Algum de vocês ja passou por isso?



    quinta-feira, 24 de outubro de 2013 03:17

Respostas

  • Thiago,

    Se a opção "Be made using the Login's current security context" funciona quando você faz uma consulta direta no SSMS, e o erro só aparece na execução do Job então configure o seu usuário como Owner do seu Job, como na imagem abaixo:

    Caso o problema persista, mude o usuário no Serviço do SQL Agent e coloque o seu porque, muito provavelmente o usuário do Agent não tem algumas permissões que seu usuário "rede\sa.banco" possui.

    Espero que seja útil para você.

    Abraços,

    Durval Ramos
    Microsoft Partner | MTA - SQL Server 2012
    ----------------------------------
    Se foi resolvido clique "Marcar como resposta" e se foi útil "Votar como Útil"

    sexta-feira, 25 de outubro de 2013 10:14

Todas as Respostas

  • Thiago, esse job está rodando no server A executando as procs no server B?

    Os 2 Servers estão configurados com o windows autentication?

    O usuário que está executando é o mesmo nas 2 máquinas com mesmo usuário e senha?


    "A vida é um paraíso, mas os homens não o sabem e não se preocupam em sabê-lo." Fiodor Dostoievski

    quinta-feira, 24 de outubro de 2013 10:06
  • Ola, Kanaãm

    As proc estão no server B e o Job também, eu apenas me conecto no server A via linked server para consultar os dados.

    Sim, os dois server estão configurados com windows authentication.

    Sim, o usuario é o mesmo.

    quinta-feira, 24 de outubro de 2013 10:41
  • Certo, então dá uma olhada nesse Link

    Deve resolver esse problema.

     

    "A vida é um paraíso, mas os homens não o sabem e não se preocupam em sabê-lo." Fiodor Dostoievski

    quinta-feira, 24 de outubro de 2013 10:44
  • Kanaãm, fazendo isso recebo o erro:

    "The linked server has been updated but failed a connection test. Do you want to edit the linked server properties?"


    "Login failed for user 'region\sa.banco'. (Microsoft SQL Server, Error: 18456)"

    quinta-feira, 24 de outubro de 2013 19:33
  • Isso significa que o usuário que você está tentando logar no servidor remoto está sem permissão de acesso.

    Dá uma conferida.


    "A vida é um paraíso, mas os homens não o sabem e não se preocupam em sabê-lo." Fiodor Dostoievski

    quinta-feira, 24 de outubro de 2013 20:03
  • Mas é com ele mesmo que eu estou logado no servidor. No Sql existe alguma configuração que restringe o uso do login caso eu nao esteja logado na maquina?
    quinta-feira, 24 de outubro de 2013 20:11
  • como está a opção remote access dos seus 2 servers?

    "A vida é um paraíso, mas os homens não o sabem e não se preocupam em sabê-lo." Fiodor Dostoievski

    quinta-feira, 24 de outubro de 2013 20:18
  • existe um grupo de acesso vinculado aos dois servidores, onde o meu usuário esta inserido.
    quinta-feira, 24 de outubro de 2013 20:33
  • Thiago, Isto é uma configuração do linkedserver no servidor "B". Você precisa alterar este linkedserver e indicar um usuário SQL no servidor "A" com seu usuário de domínio que executa a consulta remota. Segue modelo abaixo EXEC sp_addlinkedsrvlogin 'Accounts', 'false', 'rede\sa.banco', 'UsuarioSQLServidorA', 'Senha' Veja o link com esta documentação: http://technet.microsoft.com/en-us/library/aa259581(v=sql.80).aspx http://technet.microsoft.com/en-us/library/aa215786(v=sql.80).aspx Se ajudou não esquece de votar ! Durval Ramos MTA SQL Server | MS Partner
    • Editado Durval Ramos quinta-feira, 24 de outubro de 2013 21:53
    quinta-feira, 24 de outubro de 2013 21:52
  • Olá Durval, obrigado pela dica mas agora o problema é que meu linked parou de funcionar. So consigo cria-lo com autenticacao via usuario logado, diferente disso, da erro o erro acima.
    quinta-feira, 24 de outubro de 2013 22:57
  • Kanaãm, fazendo isso recebo o erro:

    "The linked server has been updated but failed a connection test. Do you want to edit the linked server properties?"


    "Login failed for user 'region\sa.banco'. (Microsoft SQL Server, Error: 18456)"

    Thiago,

    Este erro deve estar ocorrendo por umas das situações abaixo:

    - o usuário que você esta alterando o linkedserver não deve possuir permissão para criar/alterar linkedservers, ou;

    - o usuário que você esta tentando acessar o outro servidor não possui acesso.

    Remova todas referências de login de usuário e insira somente "Be made using the Login's current security context", como indicado na imagem abaixo.

    Espero que seja útil para você.

    Abraços,

    Durval Ramos
    Microsoft Partner | MTA - SQL Server 2012
    ----------------------------------
    Se foi resolvido clique "Marcar como resposta" e se foi útil "Votar como Útil"
    sexta-feira, 25 de outubro de 2013 00:08
  • Durval,

    Ja tentei desta forma e recebo o erro mencionado. O que eu deveria fazer para poder usar esta configuração no meu linked server, alguma configuração especifica de segurança no server A talvez?

    É engraçado que qndo configuro meu linked server na opção "Be made using the Login's current security context" ele funciona que uma beleza, agora se uso a opção sugerida por você, nada feito, isso que o usuario logado é o mesmo que o usuario colocado campo. 

    sexta-feira, 25 de outubro de 2013 01:29
  • Thiago,

    Se a opção "Be made using the Login's current security context" funciona quando você faz uma consulta direta no SSMS, e o erro só aparece na execução do Job então configure o seu usuário como Owner do seu Job, como na imagem abaixo:

    Caso o problema persista, mude o usuário no Serviço do SQL Agent e coloque o seu porque, muito provavelmente o usuário do Agent não tem algumas permissões que seu usuário "rede\sa.banco" possui.

    Espero que seja útil para você.

    Abraços,

    Durval Ramos
    Microsoft Partner | MTA - SQL Server 2012
    ----------------------------------
    Se foi resolvido clique "Marcar como resposta" e se foi útil "Votar como Útil"

    sexta-feira, 25 de outubro de 2013 10:14
  • Thiago,

    Você esta utilizando Windows Authentication, sendo assim, este usuário do Windows tem que estar presente nos seus 2 SQL Servers.

    Se o usuário esta conseguindo executar as querys o problema esta no usuário que esta executando o Job, verifique quem é este usuário, quais suas permissões e também se é o mesmo que esta configurado como Owner do Job.


    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]

    sexta-feira, 25 de outubro de 2013 12:27
    Moderador
  • Junior, 

    Uso o mesmo usuario para tudo (login no windows, login no sql, criação do linked server e job)

    sexta-feira, 25 de outubro de 2013 12:30
  • Thiago,

    Ok, isso é algo perigoso, utilizar a mesma conta de usuário!!!

    O usuário tem que existir no SQL Server dos dois servidores!!!!

    Mas o erro esta bem claro é falta de permissão para quem esta executando o Job e quem esta fazendo acesso através do Linked Server.


    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]

    sexta-feira, 25 de outubro de 2013 13:00
    Moderador
  • Durval,

    Funcionou cara, troquei o usuario do Agent e retirei um meu usuario definido no "run as" do meu Job.

    Valeu pela ajuda, grande abraço.

    sexta-feira, 25 de outubro de 2013 17:00