Inspired by / adapted from a MetaLink search...
In short, fool Access into thinking that each user can only see the tables for the Data Warehouse.
Do this by creating a view on SYS.ALL_OBJECTS for each user, which only contains Data Warehouse tables.
Roughly, the view would be like "Select * from SYS.ALL_OBJECTS where OWNER='WAREHOUSE' ".
So, when the user links tables through Access, Access queries the ALL_OBJECTS view, and only sees Data Warehouse tables. Nifty, huh?
So now everyone's happy :)
Thanks to all for your input.