As permissões nas tabelas não são verificadas (incluindo DENY) se as tabelas e o proc tiverem o mesmo proprietário. Eles também podem estar em esquemas diferentes, desde que os esquemas tenham o mesmo proprietário.
Consulte Encadeamento de propriedade no MSDN
Editar, a partir de um comentário de uma resposta excluída.
O contexto é sempre o login atual, a menos que
EXECUTE AS
conforme usado:apenas as permissões DML do objeto referenciado não são verificadas. Tente OBJECT_ID(tabela referenciada) em um proc armazenado onde nenhum direito é atribuído à tabela referenciada. Dá NULL. Se executado pelo proprietário do proc armazenado, ele daria um valor porque o proprietário tem direitos na tabela referenciada