Erro com sp_send_dbmail dentro de um Job

Estava analisando um problema que vinha ocorrendo em um job e cheguei a uma conclusão bem interessante, para não dizer estranha.

Estava recebendo a mensagem “Error formatting query, probably invalid parameters [SQLSTATE 42000] (Error 22050)” em um job, que executa um “EXEC SP_SEND_DBMAIL” utilizando a conta de serviço do SQL Server Agent.

Pela mensagem de erro fui levado a inicialmente analisar algum possível erro na consulta utilizada pelo parâmetro @query do sp_send_dbmail, mas logo vi que esse não era o problema.

Ao pesquisar um pouco encontrei uma solução que pelo menos aqui vem funcionando, apesar de não fazer muito sentido para mim.

Nesse ambiente a conta do SQL Server Agent não existia explicitamente no SQL Server, pois ela está em um grupo que, esse sim, tinha um login para si. O problema é que parece que nesse tipo de situação o SQL Server não consegue validar a credencial da conta a não ser que você:

1) Crie explicitamente a conta do SQL Server Agent na instância (e adicione as devidas permissões)

2) Adicione ao comando

USE msdb
EXECUTE AS USER = 'dbo'

A segunda opção eu não testei, mas encontrei um caso na internet onde a pessoa diz ter resolvido assim. Já no meu ambiente a primeira solução foi a que funcionou, mesmo que eu ainda não tenha entendido completamente o motivo para tal.

Obs 1: vi um caso de uma pessoa dizendo que enfrentou esse mesmo problema quando a conta do serviço do SQL Server Agent estava com a senha expirada.

Obs 2: as mensagens de erro do SQL Server em muitos casos não são muito boas, mas no meio de todas as novidades sobre o SQL Server 2012 (fka SQL Denali) li uma falando que a Microsoft está trabalhando para eliminar todas as mensagens “genéricas” e colocar mensagens detalhadas (infelizmente, não lembro a URL….). Vamos esperar para ver!

Fontes:

Esse post foi publicado em Artigos, Virtual PASS BR. Bookmark o link permanente.

Deixe uma resposta

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 )

Imagem do Twitter

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

Foto do Facebook

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

Foto do Google+

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

Conectando a %s