Encontrei uma razão para isso acontecer. O usuário tinha as permissões apropriadas, mas o procedimento armazenado incluía um
TRUNCATE
declaração:TRUNCATE TableName
Desde
TRUNCATE
exclui itens sem log, você (aparentemente) precisa de permissões elevadas para executar um procedimento armazenado que o contém. Mudamos a declaração para:DELETE FROM TableName
...e o erro desapareceu!