В следующей статье очень подробно рассматриваются несколько различных способов предоставления разрешений с использованием хранимых процедур. Это определенно стоит прочитать.
http://www.sommarskog.se/grantperm.html
В большинстве случаев цепочка владения решает проблемы с разрешениями. Пока хранимая процедура и базовая таблица имеют одного и того же владельца, пользователю нужно только разрешение на EXECUTE
хранимую процедуру.
В комментарии к другому ответу вы упоминаете, что хранимая процедура находится в другой базе данных из таблицы. Вы можете посмотреть на подпись модуля как на метод, разрешающий доступ только через хранимую процедуру. Другой альтернативой, если это возможно, является создание хранимой процедуры в той же базе данных, что и таблица, а затем предоставление доступа пользователям в другой базе данных. Таким образом, цепочка владения вступит в силу.