Wynika to z execute-as-user scoping - przełączanie kontekstu do użytkownika na poziomie bazy danych jest domyślnie ograniczone tylko do tej bazy danych (a powyższy kod jest wykonywany poza daną bazą danych do msdb), a moduł uwierzytelniający tylko do bazy danych jest nieprawidłowy. Zobacz powyższy link, aby uzyskać dostęp do wielu opcji rozwiązania/obejścia.