Criei um job do SQL Server, no qual:
- Meu usuário está definido como o
owner
do trabalho - Nenhum usuário é especificado em
run as
nenhuma etapa.
O trabalho falhou com o erro:
'EXECUTE AS LOGIN' falhou para o login solicitado <my_username_here>
Quando mudei o nome owner
do trabalho para outro usuário com mais privilégios, o trabalho funcionou.
Portanto, parece que o trabalho é executado sob o usuário definido como owner
- mas li várias perguntas aqui ( 1 , 2 ) ou no SO discutindo "quem é o usuário que está executando o trabalho" e nenhuma mencionou isso.
Então eu me pergunto o que aconteceu no meu caso?
Sim, essa é a conta usada (internamente) para executar o código nas etapas do trabalho, por padrão.
As duas primeiras perguntas que você vinculou não estão relacionadas. A primeira pergunta sobre como descobrir quem iniciou manualmente um trabalho SQL. A segunda é perguntar como a conta de serviço SQL Agent é executada (externamente, no Windows). A terceira pergunta que você vinculou é relevante, mas incompleta em informações.
É importante escolher o adequado
owner
de seus trabalhos SQL. Geralmente, isso não será um usuário real, como você, mas deve ser Logins dedicados genéricos. Eu tenho uma única conta dedicada do Windows devidamente provisionada, que uso paraowner
todos os meus trabalhos SQL. Dessa forma, não preciso me preocupar com a falha dos trabalhos se as permissões da conta de uma pessoa específica mudarem, forem desativadas (por exemplo, se eles saírem da empresa), forem bloqueadas (devido à expiração da senha etc.).