Вам нужно только GRANT EXEC для пользователя с ограниченными правами. Пока пользователь имеет разрешения для хранимой процедуры, он игнорирует / переопределяет разрешения для операций внутри процедуры.
Я бы сделал это очень осторожно, это звучит как большая потенциальная дыра в безопасности. Как правило, вы будете использовать несколько процедур, чтобы иметь возможность настраивать разрешения по мере необходимости. Я бы порекомендовал назначить разрешения для процедуры или для базовых таблиц и представлений, а не решать, что будет только одна супер процедура.