Isso se deve ao escopo executado como usuário - a alternância de contexto para um usuário no nível do banco de dados é, por padrão, com escopo definido apenas para esse banco de dados (e o código acima está sendo executado fora do banco de dados fornecido para o msdb) e o autenticador somente do banco de dados é inválido. Consulte o link acima para várias opções sobre como resolver/contornar.