Jeśli procedura składowana została utworzona przy użyciu opcji EXECUTE AS CALLER (co moim zdaniem jest domyślne), to osoba wywołująca musi mieć wszystkie uprawnienia niezbędne do wykonywania wszystkich czynności wykonywanych przez procedurę składowaną oprócz opcji EXECUTE w procedurze.
Z dokumentacji SQL Server dla EXECUTE AS:
Należy zauważyć, że ze względu na sposób, w jaki SQL Server przetwarza kontrole uprawnień przy użyciu łańcuchów własności, nie zawsze jest to całkowicie prawdziwe i domyślam się, że przyznanie KONTROLI w procedurze (która nadaje status własności stypendyście) powoduje, że te kontrole uprawnień są ominięte.
Jeśli utworzysz procedurę z EXECUTE AS OWNER, nie powinieneś potrzebować nadawać żadnych uprawnień poza EXECUTE w procedurze.