Предполагается, что SQL Server (все версии)
Ошибка говорит «отказано»: если разрешения отсутствуют или неверны, вы увидите что-то вроде «не существует или нет разрешений». Исходя из этого, я бы проверил права на vtPhoneNumbers и посмотрел, был ли установлен какой-либо явный DENY. DENY всегда оценивается и имеет приоритет. (Извините, не могу найти его в BOL).
Почему:
Идея цепочек владения / цепочки означает, что если все объекты находятся в одной и той же схеме (он же владелец), разрешения для указанного объекта не проверяются.
В этом случае не следует проверять разрешения для vtPhoneNumbers и vtPersons, поскольку все представления и таблицы находятся в схеме «Люди».
Примечание. REVOKE удаляет разрешения (ранее установленные с помощью GRANT или DENY). Кто-то, возможно, использовал DENY not REVOKE для удаления предыдущего оператора GRANT на vtPhoneNumbers