Esto se debe a execute-as-user scoping - el cambio de contexto a un usuario de nivel de base de datos tiene un alcance predeterminado solo para esa base de datos (y el código anterior se ejecuta fuera de la base de datos dada a través de msdb), y el autenticador solo de la base de datos no es válido. Consulte el enlace anterior para obtener múltiples opciones sobre cómo resolver/solucionar.