Najwyraźniej musiałem zrobić GRANT EXECUTE ON FUNCTION zamiast GRANT EXECUTE ON PROCEDURE .
Można by pomyśleć, że jeśli GRANT EXECUTE ON PROCEDURE działał tylko w przypadku PROCEDUR, w których komunikat o błędzie powinien brzmieć „Kod błędu:1305. PROCEDURA businessDayDiff nie istnieje” zamiast „FUNKCJA lub PROCEDURA”...