I have a SQL Server Database 2005

I would like to be able to "lock out" some tables so that a programmer connecting to the database cannot access certain tables

Is this possible ?

Alternatively, I guess we could create anoth database which is a copy of the main database EXCLUDING the tables I want secured, and allow the programmer to access the new database for reporting, etc

What is the normal way to deal with this requirement ?

Thanks