Encontré una razón por la que esto sucedería. El usuario tenía los permisos apropiados, pero el procedimiento almacenado incluía un TRUNCATE
declaración:
TRUNCATE TableName
Desde TRUNCATE
elimina elementos sin iniciar sesión, (aparentemente) necesita permisos elevados para ejecutar un procedimiento almacenado que lo contiene. Cambiamos la declaración a:
DELETE FROM TableName
... ¡y el error desapareció!