none
Erro ao enviar e-mail em job do SQL Server Agente RRS feed

  • Pergunta

  • Bom dia pessoa! Quanto tempo, né?! Rsrs

    Hoje estou precisando de uma ajuda de vocês amigos!

    Estou com uma stored procedure que eu fiz que envia um e-mail para um grupo de pessoas com o resultado de uma query anexado a ela.
    Quando executo essa stored procedure no SSMS, ela executa normalmente e envia o e-mail com o arquivo em anexo; porém, quando coloco a execução dessa procedure numa job do SQL Server Agent ela retorna o seguinte erro:
    Message
    Executado como usuário: AUTORIDADE NT\SERVIÇO DE REDE. Error formatting query, probably invalid parameters [SQLSTATE 42000] (Erro 22050).  Falha na etapa.


    Já coloquei o perfil do Database Mail para público e já coloquei permissões de DBReader, DBWriter, Dbo e Public para o usuário AUTORIDADE NT\SERVIÇO DE REDE para o banco que estou consultando e já coloquei as permissões DatabaseMailUserRole no MSDB e mesmo assim não funciona.

    Quando eu coloco uma consulta que não faça acesso a banco (Ex.: SELECT 'usuario1' as Usuario Union All SELECT 'usuario2' Union All SELECT 'usuario3') a job executa com sucesso e envia o e-mail para os responsáveis.

    Não estou sabendo mais o que fazer para dar certo...=\

    A procedure executa a seguinte rotina:

     declare @destinatarios as varchar(max)
     declare @msg   as varchar(max)
     declare @assunto  as varchar(500)
     declare @qry   as varchar(max)
    
     select @destinatarios = 'fredyesmeraldo@gmail.com.br'
     
     select @assunto = 'Relacao Clientes'
     
     select @msg = 'Caros,'+CHAR(13)+CHAR(13)+
         'Enviado dia '+CONVERT(varchar,getDate()-1,103)
     select @qry = 
     'set nocount on
     
     select
      cast( seg.codigo as varchar )               as codigo,
      sdo.nome_cliente                    as cliente
     from
      tb_cliente'
    
     EXEC msdb.dbo.sp_send_dbmail
      @recipients = @destinatarios,
      @subject = @assunto,
      @body = @msg,
      @query = @qry,
      @execute_query_database = 'Banco',
      @attach_query_result_as_file = 1,
      @query_attachment_filename = 'relacaoClientes.txt',
      @query_no_truncate = 1


    Fico grato desde já!


    Fredy Esmeraldo
    Microsoft MCP, MCTS, MCITP Database Administrator 2008
    Visite o meu blog: http://fredyesmeraldo.wordpress.com
    Me siga no twitter: @fredyesmeraldo
    LinkedIN: Fredy Esmeraldo
    **Ajude a melhorar o sistema de busca do fórum.Marque a(s) resposta(s) que foram úteis**
    **Se esta resposta solucionou a questão, então, por favor, marque-a como resposta.**
    • Editado Fredy Esmeraldo quinta-feira, 18 de agosto de 2011 13:06 Corrigir código
    quinta-feira, 18 de agosto de 2011 13:05

Respostas

  • Fredy,


    Voce possui um proxy user configurado? ou então crie uma credencial de rede (Sem ser AUTO\Serv De Rede) atrele a um usuario e coloque em sua proc execute as EsseUsuario.

    Lembrando que o usuario da credencial deve ter um nivel alto no dominio.


    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
    • Marcado como Resposta Fredy Esmeraldo quinta-feira, 18 de agosto de 2011 14:41
    quinta-feira, 18 de agosto de 2011 14:16
    Moderador

Todas as Respostas