Going from separate databases to shared databases and schemas (Multi Tenant Data Architecture)
I suspect it is how SSMS enumerates tables

However, you don't need DENY. Just don't GRANT.

Best practice would be something like this


Remove membership of the db_datareader and db_datawriter role(I never use them)
Create a specific role (with CREATE ROLE) and GRANT on the view to this. 


Then, you don't need to DENY on the table because it won't be checked anyway due to "ownership chaining"

Saying that, I'd also use SCHEMAs so I don't even require GRANT to the view. GRANT once to the SCHEMA. For more, see


Schema design - best practices?
Over use/correct use of schemas?